1 寮曡█
銆€銆€绲勬厠(t脿i)杌熶欢瑷�(sh猫)鍌欓﹨(q奴)鍕曠▼搴忕敤浜庢彁渚涗簡閫f帴瑷堢畻姗�(j墨)纭欢鐨勮粺浠舵帴鍙�锛屽湪瑁濆叆鍚庢垚鐐烘搷浣滅郴绲�(t菕ng)鍏�(n猫i)鏍哥殑鈥旈儴鍒嗭紝涔熷氨鏄瀹冩垚鐐烘搷浣滅郴绲�(t菕ng)鐨勪俊浠婚儴鍒�銆傚洜姝わ紝浠讳綍瑷�(sh猫)鍌欓﹨(q奴)鍕曠▼搴忕殑绱�(x矛)灏忛尟瑾ら兘鍙兘寮曡捣鎿嶄綔绯荤当(t菕ng)鐨勫穿娼�锛岃閬垮厤閫欐ǎ鐨勪簨鎯呯櫦(f膩)鐢燂紝鍙湁鍙嶅京(f霉)娓│鎵€瀵殑浠g⒓锛岄伒寰法瀵﹨(q奴)鍕曠▼搴忕殑瑕�(gu墨)鍓囥€�
銆€銆€鏈€绨″柈鐨勬柟娉曟槸璩艰卜鐝�(xi脿n)鎴愮殑椹�(q奴)鍕曠▼搴忎締鐩存帴铏曠悊鎴戝€戠殑瑷�(sh猫)鍌�锛屼絾閫欐ǎ鐨勯﹨(q奴)鍕曠▼搴忓瓨鍦ㄩ€f帴鑸囧祵鍏ラ尟瑾ょ殑棰�(f膿ng)闅�銆傚彟澶栵紝鍙互閫氶亷淇敼鍚勭ó鍟嗘キ(y猫)閫氱敤椹�(q奴)鍕曠▼搴忚垏瑷卞绨″柈鐨勮ō(sh猫)鍌欐墦浜ら亾銆傚鏋滆嚜宸辩法瀵﹨(q奴)鍕曠▼搴忕殑瑭�锛岀洝閲忎娇鐢ㄦ煇鍊嬫(bi膩o)婧�(zh菙n)鐨勭附绶氶﹨(q奴)鍕曠▼搴忔垨鑰呴椹�(q奴)鍕曠▼搴�锛屽洜?y脿n)妯楅紙鍏呵旑棏?sh铆)鐝�(xi脿n)浜嗘垜鍊戞墍闇€瑕佺殑澶ч噺鍔熻兘銆傚鏋滆ō(sh猫)鍌欏彧鏈変竴鍊嬪皥闁€鐨勭敤閫旓紝鍓囩偤瀹冪法瀵竴鍊嬪柈涓€椹�(q奴)鍕曠▼搴忎締铏曠悊鎵€鏈夎ō(sh猫)鍌欑殑璜嬫眰鍙兘鏄渶绨″柈鐨勮В姹烘柟妗�銆�
銆€銆€涓夌董鍔涙帶绲勬厠(t脿i)杌熶欢鎻愪緵浜嗗姏鎺/O椹�(q奴)鍕曠▼搴忔帴鍙h粺浠堕枊鐧�(f膩)宸ュ叿鍖匜IOS SDK锛孎(xi脿n)IOS SDK鎻愪緵浜嗘(bi膩o)婧�(zh菙n)鐨勯枊鐧�(f膩)鎺ュ彛锛岄枊鐧�(f膩)浜哄摗鍍呴渶瑕佹牴鎿�(j霉)I/O瑷�(sh猫)鍌欑殑鍏烽珨閫氫俊鍗�(xi茅)璀版垨椹�(q奴)鍕曟帴鍙h鏄庯紝濉骞惧€嬫巸鎻忓嚱鏁�(sh霉)鐨勫(sh铆)鐝�(xi脿n)浠g⒓锛岄€�(j矛n)琛屽繀瑕佺殑瑾�(di脿o)瑭﹁垏娓│锛屽嵆鍙畬鎴愪竴绋瓼IOS鐨勯枊鐧�(f膩)銆�
銆€銆€
[b]2 瑾查鑳屾櫙
[/b]銆€銆€鐩墠绛嗚€呮帴鎵嬬殑闋�(xi脿ng)鐩槸X姗�(j墨)鍫村姪鑸噲鍏夎▓绠楁(j墨)鐩�(ji膩n)鎺х郴绲�(t菕ng)銆傜暥(d膩ng)姗�(j墨)鍫寸噲鍏夊(sh铆)鏂絀I椤為亱(y霉n)琛屾檪锛屽叾鑳借搴﹀湪800m鑷�400m涔嬮枔锛岃姹傜噲鍏夎ō(sh猫)鍌欏彲闈犳€ч珮銆佹晠闅滃皯锛屼絾寰€寰€鐕堝叿鍦ㄩ亱(y霉n)琛岄亷绋嬩腑鐢�(ch菐n)鐢熸晠闅滄槸闅ㄦ(j墨)鐨�锛屽叾鏁呴殰鐜囬仈(d谩)鍒版煇涓€鍊嬪€兼檪锛屽皣涓嶈兘婊胯冻II椤為亱(y霉n)琛岃姹俒1][2]銆傜偤淇濊瓑鐩�(ji膩n)鎺х郴绲�(t菕ng)閬�(y霉n)琛岀殑绌�(w臎n)瀹氭€у拰鍙潬鎬�锛岄噰鐢ㄩ洐姗�(j墨)瀹归尟妯″紡鑸囧姏鎺у伐妤�(y猫)鎺у埗绲勬厠(t脿i)杌熶欢鐩哥祼(ji茅)鍚堢殑鏂规硶锛岄€氶亷纭欢鍐椾綑銆佽粺浠剁祫鎱�(t脿i)鐨勫彲闈犺ō(sh猫)瑷�銆乂isual C++鑸囧姏鎺х祫鎱�(t脿i)杌熶欢鐨勭祼(ji茅)鍚堬紝骞朵互RS-485绺界窔浣滅偤缍�(w菐ng)绲�(lu貌)閫f帴绶�锛屽(sh铆)鐝�(xi脿n)鍒嗗竷寮忕殑鏁�(sh霉)鎿�(j霉)搴厤缃紝瑷�(sh猫)瑷堜簡鍩轰簬鍔涙帶绲勬厠(t脿i)鐠�(hu谩n)澧冪殑闆欐(j墨)瀹归尟绯荤当(t菕ng)銆傞枊鐧�(f膩)姝ょ郴绲�(t菕ng)鐨勪换鍕�(w霉)涔嬩竴锛屽氨鏄嚜涓婚枊鐧�(f膩)椹�(q奴)鍕曠▼搴忥紝灏囪嚜瀹氱京鐨勯€氫俊鍗�(xi茅)璀板鍏ラ﹨(q奴)鍕曠▼搴忎箣涓�銆傝€屼笁缍姏鎺х祫鎱�(t脿i)杌熶欢鎻愪緵浜咺/O椹�(q奴)鍕曠▼搴忔帴鍙i枊鐧�(f膩)宸ュ叿鍖咃紙FIOS SDK锛夛紝鍥犳锛岄枊鐧�(f膩)椹�(q奴)鍕曠殑涓昏宸ヤ綔灏辨槸鍒╃敤绲勬厠(t脿i)杌熶欢鎻愪緵鐨勬帴鍙e嚱鏁�(sh霉)鍜岃几鍏ヨ几鍑洪搴法瀵獻oapi涓殑浠g⒓锛屼互閬�(d谩)鍒癐/O瑷�(sh猫)鍌欑殑鎺у埗瑕佹眰[3]銆傜敱浜庢闋�(xi脿ng)鐩殑闁嬬櫦(f膩)鍦╒isual C++ 6.0鐠�(hu谩n)澧冧腑閫�(j矛n)琛�锛屽(xu茅)缈�(x铆)Windows WDM椹�(q奴)鍕曠▼搴忚ō(sh猫)瑷堝皪浜庢繁鍏ョ悊瑙e収(n猫i)鏍告厠(t脿i)椹�(q奴)鍕曠▼搴忛枊鐧�(f膩)銆佺法瀵浉鎳�(y墨ng)鐨勬帴鍙g▼搴忎篃寰堟湁骞姪銆�
銆€銆€
[b]3 闁嬬櫦(f膩)宸ュ叿鈥斺€擣IOS SDK绨′粙[5][6]
[/b]銆€銆€FIOS SDK闁嬬櫦(f膩)鐠�(hu谩n)澧冨畬鍏ㄥ熀浜�32浣峎indows骞宠嚭銆傚畠浣跨敤鍕曟厠(t脿i)閺堟帴搴紙DLL锛夋妧琛�(sh霉)灏囬枊鐧�(f膩)浜哄摗闁嬬櫦(f膩)鐨勪唬纰兼暣鍚堝埌鍔涙帶绲勬厠(t脿i)
銆€銆€杌熶欢绯荤当(t菕ng)涓€侳IOS SDK鎻愪緵绲︾▼搴忓摗鐨勯枊鐧�(f膩)鎺ュ彛鐐篈PI鍑芥暩(sh霉)鍜孋++椤炲韩銆�
銆€銆€FIOS SDK涓昏鐢�4閮ㄥ垎绲勬垚:瑷�(sh猫)鍌欑祫鎱�(t脿i)鎺ュ彛锛圛odevcfg锛�銆佹暩(sh霉)鎿�(j霉)閫f帴绲勬厠(t脿i)鎺ュ彛锛圛oitemui锛�銆両/O鐩�(ji膩n)鎺ф帴鍙oapi鍜孖/O鏈嶅嫏(w霉)鍣ㄧ▼搴廔oserver銆傚叾涓紝Iodevcfg:璨�(f霉)璨�(z茅)绠$悊瑷�(sh猫)鍌欑祫鎱�(t脿i)閬庣▼;Ioitemui:璨�(f霉)璨�(z茅)绠$悊鏁�(sh霉)鎿�(j霉)閫f帴绲勬厠(t脿i)閬庣▼;Ioapi:璨�(f霉)璨�(z茅)瀹屾垚鑸嘔/O瑷�(sh猫)鍌欓枔鐨勬暩(sh霉)鎿�(j霉)浜ゆ彌锛屽(sh铆)鐝�(xi脿n)灏嶈ō(sh猫)鍌欑殑鐩�(ji膩n)鎺ч亷绋�锛屽寘鎷�:灏嶉€氫俊鍗�(xi茅)璀扮殑瑙f瀽銆佹暩(sh霉)鎿�(j霉)鏍煎紡鐨勮綁(zhu菐n)鎻涚瓑;Ioserver:鐢盕IOS SDK鎻愪緵锛岀敤浜庡畬鎴愬皪Ioapi 鐨勫嫊鎱�(t脿i)瑁濊級锛岃(di脿o)鐢ㄥ苟鍩�(zh铆)琛孖oapi瀵�(sh铆)鐝�(xi脿n)鐨勫皫(d菐o)鍑哄嚱鏁�(sh霉)銆傚畠灏佽浜嗗ぇ閮ㄥ垎闁嬬櫦(f膩)浜哄摗涓嶅繀闂�(gu膩n)蹇冪殑鎶€琛�(sh霉)绱�(x矛)绡€(ji茅)锛屽瀹屾垚鑸嘔/O瑷�(sh猫)鍌欑殑搴曞堡閫氫俊锛堜覆鍙i€氫俊銆佺恫(w菐ng)绲�(lu貌)閫氫俊绛夛級銆佽ō(sh猫)鍌欒秴鏅傝檿鐞�銆佽ō(sh猫)鍌欐晠闅滆ê鏂风瓑銆侷oserver閭勫畬鎴愯垏瀵�(sh铆)鏅傛暩(sh霉)鎿�(j霉)搴獶B涔嬮枔鐨勯€氫俊锛屽畠鎶婂緸I/O瑷�(sh猫)鍌欓噰闆嗗埌鐨勬暩(sh霉)鎿�(j霉)缍�(j墨ng)Ioapi瑙f瀽杞�(zhu菐n)鎻涘悗鎻愪氦绲B锛屾垨鑰呭皣DB涓嬬疆绲/O瑷�(sh猫)鍌欑殑鏁�(sh霉)鎿�(j霉)缍�(j墨ng)Ioapi瑙f瀽杞�(zhu菐n)鎻涘悗瀵叆I/O瑷�(sh猫)鍌�銆�
銆€銆€鍥犳锛岄枊鐧�(f膩)浜哄摗鍍呴渶瑕侀枊鐧�(f膩)Iodevcfg銆両oitemui銆両oapi涓夐儴鍒嗙殑浠g⒓銆備笅闈㈠氨浠ラ€欎笁鍊嬮儴鍒嗙殑浠g⒓銆佺晫闈㈤枊鐧�(f膩)鐐轰緥锛岃鏄庡湪鍔涙帶绲勬厠(t脿i)杌熶欢涓€�(j矛n)琛岄﹨(q奴)鍕曢枊鐧�(f膩)鐨勬椹�?锛併€€?
銆€銆€
[b]4 闁嬬櫦(f膩)瀵�(sh铆)渚�
[/b]銆€銆€浠8051鍠墖姗�(j墨)瀵�(sh铆)鐝�(xi脿n)鏁�(sh霉)鎿�(j霉)閲囬泦鐐轰緥锛岄嚌灏嶄笅灞S-485绺界窔閫氫俊闁嬬櫦(f膩)椹�(q奴)鍕曠▼搴�銆�
銆€銆€4.1 瑷�(sh猫)鍌欑祫鎱�(t脿i)鎺ュ彛锛圛odevcfg锛夐枊鐧�(f膩)
銆€?銆�?锛� I/O鎻忚堪鏂囦欢
銆€銆€鍦ㄤ娇鐢ㄥ姏鎺ч€�(j矛n)琛岀祫鎱�(t脿i)鏅�锛屼竴鑸兘瑕佹秹鍙奍/O瑷�(sh猫)鍌欑殑瀹氱京閬庣▼銆侷/O鎻忚堪鏂囦欢鐨勬枃浠跺悕鐐篒odesc.txt銆傛枃浠跺収(n猫i)瀹硅(gu墨)瀹氱殑鏍煎紡濡備笅锛堝叾涓�锛岃〃绀哄洖杌婃彌琛岋級:
銆€銆€椤炲垾;寤犲晢鎴朓/O绋嬪簭鎻忚堪;IOID
銆€銆€瀛愰鍨�1;椤炲瀷铏�;缂虹渷閫氫俊鏂瑰紡;鎻愪緵瑷�(sh猫)鍌欏湴鍧€
銆€銆€瀛愰鍨�2;椤炲瀷铏�;缂虹渷閫氫俊鏂瑰紡;鎻愪緵瑷�(sh猫)鍌欏湴鍧€
銆€銆€鈥︹€�
銆€銆€鍥犳锛屽湪鏈爡(xi脿ng)鐩腑鐨処/O鎻忚堪鏂囦欢瀹氱京鐐�:
銆€銆€鈥淴瑷堢畻姗�(j墨)鐩�(ji膩n)鎺х郴绲�(t菕ng);鑿腑绉戞妧澶у(xu茅)鎺у埗绯�;CCMSController;0;1;0鈥濊〃绀洪鍨嬭櫉鐐�0锛孯S-485閫氫俊锛屼笉瑷�(sh猫)缃ō(sh猫)鍌欏湴鍧€銆�
銆€?銆�?锛� 闁嬬櫦(f膩)Iodevcfg.dll
銆€銆€闁嬬櫦(f膩)浜哄摗鍦ㄧ法瀵獻odevcfg鎺ュ彛绋嬪簭鏅備富瑕佸畬鎴愬叐閮ㄥ垎鍔熻兘锛屼竴鏄偤鐢ㄦ埗閫�(j矛n)琛岃ō(sh猫)鍌欑祫鎱�(t脿i)鏅傛彁渚涗竴鍊嬬晫闈�;鍙﹀灏辨槸灏囩敤鎴剁祫鎱�(t脿i)鐨勮ō(sh猫)鍌欏弮鏁�(sh霉)淇℃伅淇濆瓨璧蜂締锛屼互渚垮湪闁嬬櫦(f膩)绶ㄧ▼鎺ュ彛Ioapi鏅備娇鐢ㄣ€傚鏋滃姏鎺ф彁渚涚殑妯�(bi膩o)婧�(zh菙n)瑷�(sh猫)鍌欑祫鎱�(t脿i)鎺ュ彛鑳藉瀹屾暣鍦版弿杩拌ō(sh猫)鍌欑殑鏈夐棞(gu膩n)淇℃伅锛屽氨涓嶉渶瑕佸啀绶ㄥIodevcfg鎺ュ彛绋嬪簭銆傛(bi膩o)婧�(zh菙n)鐣岄潰濡傚湒1鎵€绀�锛屽苟灏嶄覆鍙i€�(j矛n)琛岀浉闂�(gu膩n)瑷�(sh猫)缃�锛屽鍦�2鎵€绀恒€�
銆€銆€

4.2 鏁�(sh霉)鎿�(j霉)閫f帴绲勬厠(t脿i)鎺ュ彛锛圛oitemui锛夐枊鐧�(f膩)
銆€銆€鍦ㄧ敤鍔涙帶閫�(j矛n)琛岀祫鎱�(t脿i)鏅�锛屾妸瀵�(sh铆)鏅傛暩(sh霉)鎿�(j霉)搴獶B涓殑榛�(di菐n)鍙冩暩(sh霉)鑸囨煇绋ō(sh猫)鍌欑殑鍏烽珨淇¢亾寤虹珛閫f帴鐨勯亷绋嬭鐐烘暩(sh霉)鎿�(j霉)閫f帴閬庣▼銆侷oitemui瑕佷互DLL褰㈠紡鎻愪緵锛岃┎DLL蹇呴爤鏄疢FC鎿�(ku貌)灞旸LL锛屽叾缂虹渷鏂囦欢鍚嶇ū鐐篒oitemui.dll銆�
銆€銆€鏁�(sh霉)鎿�(j霉)閫f帴閬庣▼灏嶄簬涓嶅悓鐨処/O瑷�(sh猫)鍌�锛屽叾褰㈠紡鍜屽収(n猫i)瀹瑰彲鑳藉畬鍏ㄤ笉鍚屻€傚洜姝�锛屽繀闋堥嚌灏嶄笉鍚岀殑I/O瑷�(sh猫)鍌欒ō(sh猫)瑷堢浉鎳�(y墨ng)鐨勬暩(sh霉)鎿�(j霉)閫f帴褰㈠紡浠ヤ繚瀛樺悇绋弮鏁�(sh霉)淇℃伅銆�
銆€銆€闁嬬櫦(f膩)浜哄摗鍦ㄧ法瀵獻oitemui鎺ュ彛绋嬪簭鏅備篃鏄富瑕佸畬鎴愬叐閮ㄥ垎鍔熻兘锛屼竴鏄偤鐢ㄦ埗閫�(j矛n)琛屾暩(sh霉)鎿�(j霉)閫f帴绲勬厠(t脿i)鏅傛彁渚涗竴鍊嬬晫闈�;浜屾槸灏囩敤鎴剁祫鎱�(t脿i)鐨勮ō(sh猫)鍌欏弮鏁�(sh霉)淇℃伅淇濆瓨鍦ㄦ暩(sh霉)鎿�(j霉)閫f帴闋�(xi脿ng)绲�(ji茅)妲�(g貌u)锛堜互涓嬬啊绋遍€f帴闋�(xi脿ng)绲�(ji茅)妲�(g貌u)锛塈OITEMDEF涓紝浠ヤ究鍦ㄩ枊鐧�(f膩)I/O鐩�(ji膩n)鎺ф帴鍙oapi鏅備娇鐢�銆傞€欏€嬮€f帴闋�(xi脿ng)绲�(ji茅)妲�(g貌u)鏄竴鍊嬮€氱敤绲�(ji茅)妲�(g貌u)锛岀敱闁嬬櫦(f膩)浜哄摗鑷繁璩﹀€�锛岃嚜宸辫В閲嬨€傜晫闈㈠鍦�3鎵€绀�:
銆€銆€

[align=center]鍦�3 鏁�(sh霉)鎿�(j霉)閫f帴绲勬厠(t脿i)鐣岄潰
[/align]
銆€銆€4.3 I/O鐩�(ji膩n)鎺ф帴鍙oapi闁嬬櫦(f膩)
銆€銆€Ioapi鏄疐IOS鎻愪緵鐨勬渶閲嶈鐨勪竴鍊嬬法绋嬫帴鍙�锛岄枊鐧�(f膩)浜哄摗鐨勪富瑕佸伐浣滃氨鏄枊鐧�(f膩)Ioapi閮ㄥ垎鐨勭▼搴忎唬纰笺€侷oapi鎻愪緵浜嗕竴绲凙PI鍑芥暩(sh霉)锛堟巸鎻忓嚱鏁�(sh霉)锛夊拰涓€浜汣++椤炲韩锛圛OC, Input Output Class锛�銆傞€欎簺IOC椤炲韩鍏ㄩ儴浠ョ磾铏涢鐨勫舰寮忔彁渚涳紝骞朵笖鍙湁鎴愬摗鍑芥暩(sh霉)锛屾矑鏈夋垚鍝¤畩閲�锛屼富瑕佸寘鎷�5鍊嬮:CItem锛堟暩(sh霉)鎿�(j霉)闋�(xi脿ng)椤烇級銆丆Packet锛堟暩(sh霉)鎿�(j霉)鍖呴锛�銆丆Device锛堣ō(sh猫)鍌欓锛夈€丆Channel锛堜俊閬撻锛夊拰CManager锛堢鐞嗗櫒椤烇級銆備互灞ょ礆鐨勭祼(ji茅)妲�(g貌u)渚嗙鐞嗛粸(di菐n)銆佸寘銆佽ō(sh猫)鍌欍€佷俊閬�锛屽(sh铆)鐝�(xi脿n)灏嶈ō(sh猫)鍌欑祫鎱�(t脿i)銆佹暩(sh霉)鎿�(j霉)绲勬厠(t脿i)銆佸弮鏁�(sh霉)淇℃伅鐨勭嵅鍙栧拰鑸囧(sh铆)鏅傛暩(sh霉)鎿�(j霉)搴獶B涔嬮枔鐨勬暩(sh霉)鎿�(j霉)浜ゆ彌銆�
銆€銆€Ioapi.dll绋嬪簭涓富瑕佸畬鎴愬涓嬬殑灏�(d菐o)鍑哄嚱鏁�(sh霉)锛堝皪浜庝笉闇€瑕佺殑鍑芥暩(sh霉)锛屼竴瀹氳鍒櫎锛岄€欐ǎ鍙互浣跨▼搴忕殑閬�(y霉n)琛屾晥鐜囨彁楂橈級:
銆€銆€OnCreate锛嶈級鍏oapi.dll鍚庣珛鍗宠(di脿o)鐢�锛岄€欐檪淇¢亾銆佽ō(sh猫)鍌欍€佸寘銆侀粸(di菐n)閮戒笉瀛樺湪锛屼竴鑸敤浜庤ō(sh猫)缃▼搴忕殑妯�(bi膩o)椤�锛屼娇鐢ㄦ埗姣旇純娓呮绋嬪簭鐨勭敤閫�;
銆€銆€OnSortItem锛嶆墍鏈夐粸(di菐n)灏�(d菐o)鍏ュ畬鐣㈠悗瑾�(di脿o)鐢�锛岄€欐檪鍊欐矑鏈変换浣曞寘寤虹珛;
銆€銆€OnItemToPacket锛嶅惊鐠�(hu谩n)澶氭娣诲姞鎵€鏈夌殑榛�(di菐n)鍒板悇鍊嬪寘涓紝鍩烘湰鍘熷墖鏄兘涓€娆¤檿鐞嗙殑榛�(di菐n)鎵撴垚涓€鍊嬪寘锛屼娇鎵撳寘鍚堢悊鍖�;
銆€銆€OnBeforeScan锛嶆墦鍖呭畬鎴�锛屾寮忚(di脿o)搴︿箣鍓嶈(di脿o)鐢ㄤ竴娆�锛岄亶姝风鐞嗗櫒锛屼俊閬�锛岃ō(sh猫)鍌欙紝鍖�锛岄粸(di菐n);
銆€銆€OnCreateDeviceLink锛嶈ō(sh猫)鍌欑殑鍒濆鍖栧伐浣�;
銆€銆€OnCreatePacketLink锛嶅寘鐨勫垵濮嬪寲宸ヤ綔;
銆€銆€OnReadData锛岻OSCAN绋嬪簭寰挵(hu谩n)鎺冩弿瑾�(di脿o)搴︼紝褰㈡垚鏁�(sh霉)鎿�(j霉)閲囬泦鍛戒护涓�;
銆€銆€OnWriteData锛嶇櫦(f膩)鐢熸暩(sh霉)鎿�(j霉)涓嬮€佹檪瑾�(di脿o)鐢�锛屽舰鎴愭暩(sh霉)鎿�(j霉)涓嬬疆鍛戒护涓�;
銆€銆€OnIsResponseComplete锛嶇暟姝ユ柟寮忎笅鍒ゆ柗鏄惁瀹屾垚鏁�(sh霉)鎿�(j霉)鐨勬帴鏀�锛屾槸鍚﹀皣鏁�(sh霉)鎿�(j霉)瑷�(sh猫)缃埌DB涓�;
銆€銆€OnAfterSend锛嶇櫦(f膩)閫佹暩(sh霉)鎿�(j霉)鍚庤(di脿o)鐢ㄤ竴娆�锛岃(di脿o)瑭︽檪鍙互鏌ョ湅鐧�(f膩)閫佺殑鍛戒护涓叉槸鍚︽纰�;
銆€銆€OnTimeout锛嶇櫦(f膩)鐢熻秴鏅傜殑鏅傚€欒(di脿o)鐢�;
銆€銆€OnUnloadPacket锛嶅寘鏋愭(g貌u)鏅傝(di脿o)鐢�;
銆€銆€OnClose锛岰Manager鏋愭(g貌u)鏅傝(di脿o)鐢ㄤ竴娆°€�
銆€銆€闁嬬櫦(f膩)浜哄摗鍙牴鎿�(j霉)闋�(xi脿ng)鐩腑鑷畾缇╃殑閫氫俊鍗�(xi茅)璀�锛屽皣閫氫俊鍗�(xi茅)璀板鍏ュ嚱鏁�(sh霉)OnReadData锛堬級銆丱nWriteData锛堬級涓�锛屽(sh铆)鐝�(xi脿n)鏁�(sh霉)鎿�(j霉)鐨勯噰闆嗗拰涓嬬疆銆備笅闈㈢郸鍑篛nReadData鍑芥暩(sh霉)鐨勯儴鍒嗕唬纰�:
銆€銆€INT OnReadData锛� CPacket锛� pPacket, LPTSTR lpszSendString, INT& nSendStringLen 锛�
銆€?銆�?
銆€銆€pPacket->SetReady锛圱RUE锛�;
銆€銆€//鐢熸垚閲囬泦鍛戒护瀛楃涓�
銆€銆€CDevice锛� pDevice = pPacket->GetDevice锛堬級;
銆€銆€//寰楀埌瑷�(sh猫)鍌欐寚閲�
銆€銆€CChannel 锛� pChannel = pDevice->GetChannel锛堬級;
銆€銆€//寰楀埌閫氶亾鎸囬嚌
銆€銆€pChannel->ClearAcceptBuffer锛堬級;
銆€銆€//娓呯┖鎺ユ敹绶╂矕鍗€(q奴)
銆€銆€CString csDeviceAddr = pDevice->GetAddr锛堬級;
銆€銆€//寰楀埌瀵�(sh铆)闅涜ō(sh猫)鍌欑殑鍦板潃
銆€銆€IOITEMDEF 锛� pItemStru = pPacket->GetItem锛�0锛�->GetItemStru锛堬級;
銆€銆€//寰楀埌鍖呯殑鏁�(sh霉)鎿�(j霉)
銆€銆€BYTE ucIoType = pItemStru->n[IO_TYPE];
銆€銆€//寰楀埌鐧�(f膩)閫佸懡浠ょ殑I/O椤炲瀷
銆€銆€BYTE ucDeviceAddr = pItemStru->n[DEVICE_ADDR];//寰楀埌鐢ㄦ埗杓稿叆鐨勮ō(sh猫)鍌欏湴鍧€
銆€銆€鈥︹€�
銆€銆€//闇€瑕佹牴鎿�(j霉)瀵�(sh铆)闅涚殑閫氫俊鍗�(xi茅)璀版浉瀵湁闂�(gu膩n)鐨勭▼搴�
銆€銆€CString csCommand = "";
銆€銆€csCommand = BYTE锛團RAME_HEAD锛�;
銆€銆€//瀵叆骞€淇℃伅闋�
銆€銆€鈥︹€�
銆€銆€csCommand += BYTE锛圦UERY锛�;
銆€銆€//瀹氱京骞€淇℃伅椤炲瀷
銆€銆€csCommand += BYTE锛�0x01锛�;
銆€銆€//鏈夋晥淇℃伅闀峰害鐐� 1 瀛楃瘈(ji茅)
銆€銆€csCommand += BYTE锛坲cDeviceAddr锛�;
銆€銆€//瀵叆瑷�(sh猫)鍌欑殑鍦板潃
銆€銆€csCommand += LRCCheck锛坱emp_que, 2锛�;
銆€銆€//瀵叆骞€灏綥RC鏍¢(y脿n)纰�
銆€銆€nSendStringLen = csCommand.GetLength锛堬級;
銆€銆€CString csPmessage;
銆€銆€csPmessage.Format锛�"璁€鍙栨暩(sh霉)鎿�(j霉):瑷�(sh猫)鍌欏湴鍧€%X", ucDeviceAddr锛�;
銆€銆€pDevice->ShowProcessMessage锛坈sPmessage锛�;
銆€銆€pDevice->ShowEventMessage锛坈sPmessage, FALSE锛�;
銆€銆€//瑾�(di脿o)瑭︾敤锛岀敤浠ラ’绀鸿Ц鐧�(f膩)浜嬩欢
銆€銆€for 锛� int i = 0; i < nSendStringLen; i++ 锛�
銆€銆€lpszSendString[i] = csCommand;
銆€銆€return SEND;
銆€?銆�?
銆€銆€[/i]4.4 椹�(q奴)鍕曠▼搴忕殑瑾�(di脿o)瑭�
銆€銆€閫氶亷Visual C++ 6.0绶ㄥ鐨勭▼搴忥紝濡�:Iodevcfg.dll銆両oitemui.dll銆両oapi.dll锛屽繀闋堢敓鎴怰elease鐗堟湰锛屽惁鍓囪(di脿o)瑭︽檪锛孖/O Server瑾�(di脿o)鐢ㄦ檪灏囨渻鍑洪尟锛屽苟绔嬪嵆璺冲嚭绋嬪簭鐨勫煼(zh铆)琛�銆傝(di脿o)瑭﹂’绀洪亷绋嬪闄勮〃鎵€绀�銆�
銆€銆€
銆€銆€闄勮〃 瑷�(sh猫)鍌欓﹨(q奴)鍕曠▼搴忚(di脿o)瑭﹂亷绋嬩俊鎭�
銆€銆€
[align=center][i]闄勮〃 瑷�(sh猫)鍌欓﹨(q奴)鍕曠▼搴忚(di脿o)瑭﹂亷绋嬩俊鎭�
[/i][/align]
銆€銆€瑾�(di脿o)瑭︾祼(ji茅)鏋滆〃鏄庤┎椹�(q奴)鍕曠▼搴忓彲浠ュ(sh铆)鐝�(xi脿n)鑸嘋8051鍠墖姗�(j墨)鐨勭暟姝ラ€氫俊锛屽畬鎴愭暩(sh霉)鎿�(j霉)鐨勯噰闆�锛岄€�(j矛n)鑰屽(sh铆)鐝�(xi脿n)灏嶅姪鑸噲鍏夌殑鎺у埗銆�
銆€銆€
5 绲�(ji茅)鏉熻獮
銆€銆€绲勬厠(t脿i)杌熶欢浣滅偤鐝�(xi脿n)鍫寸敓鐢�(ch菐n)鏁�(sh霉)鎿�(j霉)閲囬泦鍜岄亷绋嬫帶鍒剁殑灏堢敤杌熶欢锛屽湪瑷卞琛屾キ(y猫)闋�(l菒ng)鍩熼兘鏈夋噳(y墨ng)鐢�銆備絾浠讳綍绲勬厠(t脿i)杌熶欢鐨勯﹨(q奴)鍕曠▼搴忎笉鍙兘鍥婃嫭鎵€鏈夎ō(sh猫)鍌欑殑椹�(q奴)鍕曠▼搴忥紝鐗瑰垾鏄皪閫氫俊鍗�(xi茅)璀版湁鐗瑰畾瑕佹眰鐨勮ō(sh猫)鍌�锛屽洜姝�锛屽氨闇€瑕侀枊鐧�(f膩)浜哄摗鏍规摎(j霉)鑷繁鐨勯€氫俊鍗�(xi茅)璀扮法瀵浉鎳�(y墨ng)鐨勯﹨(q奴)鍕曠▼搴忎唬纰�锛屽苟绲�(ji茅)鍚堝(sh铆)闅涚殑瑷�(sh猫)鍌欓€�(j矛n)琛岃(di脿o)瑭�銆備竴鍊嬪ソ鐨勯﹨(q奴)鍕曠▼搴忚ō(sh猫)瑷堟噳(y墨ng)瑭叉槸鍙厤缃殑銆佸彲绉绘鐨勩€佸彲鎼跺崰寮忕殑銆佸彲涓柗鐨勫拰澶氳檿鐞嗗櫒瀹夊叏鐨刐4]銆傝嫢鎯宠兘澶犲緢濂藉湴鎺屾彙椹�(q奴)鍕曠▼搴忕殑闁嬬櫦(f膩)锛屾渶鏍规湰鐨勬槸闁辫畝椹�(q奴)鍕曟枃妾斿苟鑷繁鍕曟墜绶ㄥ椹�(q奴)鍕曠▼搴忋€�
绶ㄨ集锛氫綍涓栧钩