大红鹰dhy登录界面「网站首页」欢迎您 /vb6-0-realize-can-signal-transceiver-demo/ /vb6-0-realize-can-signal-transceiver-demo/#respond Mon, 29 Jul 2024 06:32:15 +0000 /?p=11998 鏈枃涓昏璁茬殑鏄紝鍩轰簬TSMaster 瀹炵幇 TOSUN 绯诲垪 CAN/CAN FD锛孡IN 璁惧鐨勬搷浣溿€備富瑕佺粰 […]

The post 骞茶揣鍒嗕韩 | 鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo first appeared on 涓婃捣鍚屾槦鏅鸿兘绉戞妧鏈夐檺鍏徃.

]]>
鏈枃涓昏璁茬殑鏄紝鍩轰簬TSMaster 瀹炵幇 TOSUN 绯诲垪 CAN/CAN FD锛孡IN 璁惧鐨勬搷浣溿€備富瑕佺粰澶у浠嬬粛鍦 TSMaster 杞欢閲屽浣曞疄鐜 CAN 淇″彿鏀跺彂 Demo宸ョ▼銆

鏈枃鍏抽敭瀛楋細CAN鎶ユ枃銆乂B6.0銆乴ibTSCAN

鏈枃鐩綍

01銆佸叧浜嶥emo宸ョ▼

绠€瑕佹弿杩帮細

VB6.0缂栫▼璇█璋冪敤libTSCAN鎺ュ彛瀹炵幇纭欢鎵弿銆佽繛鎺ャ€丆AN鎶ユ枃鍗曞抚鍙戦€併€佸懆鏈熷彂閫併€佹姤鏂囨帴鏀讹紝鎶ユ枃杩囨护銆侟/p>

鍏稿瀷搴旂敤闇€姹侜

瀵逛簬鐜板湪杩樺湪缁存姢鍜屽紑鍙戠殑VB椤圭洰宸ョ▼闇€瑕佽皟鐢═SCAN纭欢瀹炵幇鎶ユ枃鏀跺彂绛変笟鍔°€侟/p>

02銆佹妧鏈儗鏅?/h2>

鍦 VB6.0 涓娇鐢 Declare 璇彞澹版槑libTSCAN.dll涓殑鍑芥暟锛岃繖浜涘0鏄庝娇寰 VB6.0 鑳藉涓庡簳灞傜殑 API 杩涜浜や簰銆傚锛歅rivate Declare Function tscan_connect Lib “libTSCAN.dll” (ByVal ADeviceSerial As String, ByRef AHandle As Long) As Long銆

03銆丏emo宸ョ▼瀹炵幇

1.娣诲姞搴撴枃浠迭/h3>

瑕佸疄鐜板 TOSUN 绯诲垪 CAN/CAN FD锛孡IN 璁惧鐨勬搷浣滐紝闇€瑕佸熀浜 libTSCAN.dll 锛宭ibTSH.dll锛宐inlog.dll 浠ュ強 liblog.dll鍔ㄦ€侀摼鎺ュ簱鏂囦欢銆傚畠浠箣闂翠緷璧栧叧绯诲涓嬪浘1鎵€绀恒€侟/p>

libTSCAN.dll 锛宭ibTSH.dll锛宐inlog.dll 浠ュ強 liblog.dll鍔ㄦ€侀摼鎺ュ簱鏂囦欢鏂囦欢浣嶇疆鍙互鍦═SMaster瀹夎鐩綍涓嬭幏鍙栥€侰:\Program Files (x86)\TOSUN\TSMaster\Data\SDK\examples\Python\Linux\lib\libTOSUN\windows\x86

鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo
鏂板缓濂絍B宸ョ▼鍚庡皢浠ヤ笂渚濊禆鏂囦欢娣诲姞鍒癡B宸ョ▼鐩綍涓?娣诲姞濂藉悗宸ョ▼鏂囦欢澶逛腑鐨勬枃浠跺涓嬪浘2鎵€绀恒€
鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo

2.澹版槑libTSCAN.dll涓殑鍑芥暟

浣跨敤Declare 璇彞澹版槑libTSCAN.dll涓殑鍑芥暟銆侟/p>


璇硶濡備笅锛欬/strong>

Private Declare [Function|Sub] 澶栭儴鍑芥暟鍚 Lib “搴撴枃浠跺悕” [Alias “鍒悕”] ([鍙傛暟鍒楄〃])

Private锛氬彲閫夛紝琛ㄧず璇ュ0鏄庡湪褰撳墠妯″潡鍐呭彲瑙併€傚鏋滈渶瑕佸湪澶氫釜妯″潡涓娇鐢紝鍙互浣跨敤Public銆侟/p>

Declare锛氬叧閿瓧锛岀敤浜庡0鏄庡閮ㄥ嚱鏁般€侟/p>

Function鎴朁strong>Sub锛氭牴鎹閮ㄥ嚱鏁版槸杩斿洖鍊硷紙Function锛夎繕鏄笉杩斿洖鍊硷紙Sub锛夋潵閫夋嫨銆侟/p>

澶栭儴鍑芥暟鍚嶏細浣犲湪VB6.0浠g爜涓娇鐢ㄧ殑鍑芥暟鍚嶇О銆侟/p>

Lib锛氭寚瀹氬寘鍚嚱鏁板畾涔夌殑DLL搴撴枃浠剁殑鍚嶇О銆侟/p>

搴撴枃浠跺悕锛欴LL搴撴枃浠剁殑鍚嶇О锛屼笉鍖呮嫭鎵╁睍鍚嶏紙.lib鎴?dll锛夈€侟/p>

Alias锛氬彲閫夛紝濡傛灉DLL涓殑鍑芥暟鍚嶇О涓嶸B6.0涓殑鍚嶇О鍐茬獊鎴栦笉绗﹀悎VB6.0鐨勫懡鍚嶈鍒欙紝鍙互浣跨敤鍒悕銆侟/p>

鍙傛暟鍒楄〃锛氬嚱鏁扮殑鍙傛暟锛屽寘鎷弬鏁扮殑鍚嶇О銆佺被鍨嬪拰浼犻€掓柟寮忥紙ByVal鎴朆yRef锛夈€侟/p>

‘鍔犺浇libTSCAN鍑芥暟搴擄紝蹇呴』鍦ㄨ皟鐢ㄥ叾浠朅PI涔嬪墠鎵ц

Private Declare聽Sub initialize_lib_tscan_verbose聽Lib “libTSCAN.dll” (ByVal AEnableFIFO As Boolean, ByVal AEnableErrorFrame As Boolean, ByVal AUseHWTime As Boolean, ByVal ATSType As Long)

‘閲婃斁libTSCAN鍑芥暟搴擄紝蹇呴』鍦ㄥ畬鎴愪娇鐢ㄩ€€鍑虹▼搴忎箣鍓嶈皟鐢?/em>

Private Declare Sub finalize_lib_tscan聽Lib “libTSCAN.dll” ()

‘鏌ヨ璁惧鐨勫埗閫犲晢锛屼骇鍝佸悕绉帮紝搴忓垪鍙凤紝鍖呭惈澶氬皯涓狢AN閫氶亾锛屾槸鍚︽敮鎸丗DCAN锛屽灏戜釜LIN閫氶亾锛孎lexray閫氶亾浠ュ強浠ュお缃戦€氶亾

Private Declare Function tscan_get_device_info_detail聽Lib “libTSCAN.dll” (ByVal ADeviceIndex As Long, ByRef AManufacturer As Long, ByRef AProduct As Long, ByRef ASerial As Long, ByRef ADeviceType As Long, ByRef ADeviceName As Long, ByRef ACANChannelCount As Long, ByRef AIsCAN FD As Boolean, ByRef ALINChannelCount As Long, ByRef AFRChannelCount As Long, ByRef AEthernetChannelCount As Long) As Long

‘杩炴帴璁惧

Private Declare Function tscan_connect聽Lib “libTSCAN.dll” (ByVal ADeviceSerial As String, ByRef AHandle As Long) As Long


‘鏂紑璁惧

Private Declare Function tscan_disconnect_by_handle聽Lib “libTSCAN.dll” (ByVal AHandle As Long) As Long

‘鏌ヨ褰撳墠鍦ㄧ嚎鐨凾SCAN璁惧鏁伴噺

Private Declare Function tscan_scan_devices聽Lib “libTSCAN.dll” (ByRef ADeviceCount As Long) As Long


‘閰嶇疆鏅€欳AN纭欢閫氶亾

Private Declare Function tscan_config_can_by_baudrate聽Lib “libTSCAN.dll” (ByVal AHandle As Long, ByVal AChnIdx As Long, ByVal ARateKbps As Double, ByVal A120OhmConnected As Long) As Long

‘閰嶇疆FDCAN纭欢閫氶亾锛汚ControllerType[0锛氭櫘閫欳AN 1锛欼SO-FD 2锛歂oISO-FD] AControllerMode[0:Normal 1: ACKOff 2: Retricted 3: Internal Loop 4: External Loop]

Private Declare Function tscan_config_canfd_by_baudrate聽Lib “libTSCAN.dll” (ByVal AHandle As Long, ByVal AChnIdx As Long, ByVal AArbRateKbps As Double, ByVal ADataRateKbps As Double, ByVal AControllerType As Long, ByVal AControllerMode As Long, ByVal A120OhmConnected As Long) As Long

‘鍙戦€丆AN/CAN FD鎶ユ枃

Private Declare Function tscan_transmit_can_sync聽Lib “libTSCAN.dll” (ByVal ADeviceHandle As Long, ByRef ACAN As TLIBCAN, ByVal ATimeoutMS As Long) As Long

Private Declare Function tscan_transmit_can_async聽Lib “libTSCAN.dll” (ByVal ADeviceHandle As Long, ByRef ACAN As TLIBCAN) As Long


‘鍛ㄦ湡鍙戦€丆AN/CAN FD鎶ユ枃

‘娣诲姞CAN鍛ㄦ湡鍙戦€佹姤鏂嘃/em>

Private Declare Function tscan_add_cyclic_msg_can聽Lib “libTSCAN.dll” (ByVal ADeviceHandle As Long, ByRef ACAN As TLIBCAN, ByVal APeriodMS As Single) As Long

‘鍒犻櫎CAN鍛ㄦ湡鍙戦€佹姤鏂嘃/em>

Private Declare Function tscan_delete_cyclic_msg_can Lib “libTSCAN.dll” (ByVal ADeviceHandle As Long, ByRef ACAN As TLIBCAN) As Long


娉細濡傞渶瀹屾暣鐨刅B6.0绀轰緥宸ョ▼婧愪唬鐮侊紝鍙互闅忔椂鑱旂郴鍚屾槦搴旂敤鏀寔鑾峰彇銆侟/span>

3.CAN /CAN FD鏁版嵁缁撴瀯瀹氫箟

CAN涓嶤AN FD鏁版嵁缁撴瀯濡備笅锛欬/p>

鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo

4.璋冪敤鎺ュ彛璇存槑

Demo鍐呴儴鍒嗕娇鐢ㄥ埌鐨勬帴鍙h鏄庯細

initialize_lib_tscan_verbose

浣滅敤锛氬垵濮嬪寲 tscan 搴撴ā鍧椼€傚繀椤昏皟鐢ㄦ鍑芥暟鍒濆鍖 CAN 妯″潡杩囧悗锛屾墠鑳藉璋冪敤鍏朵粬 API 鍑芥暟銆傝鍑芥暟鍜 finalize_lib_tscan 鏄垚瀵逛娇鐢ㄧ殑銆侟/p>


杈撳叆鍙傛暟锛欬/p>

AEnableFIFO[IN]锛氭槸鍚﹀紑鍚 FIFO 鏈哄埗锛屽缓璁缃负 True锛屽惁鍒欑敤鎴锋棤娉暵犅犅犅犅犅犅犅犅犅犅犅犻€氳繃 tsfifo_receive_xx 鍑芥暟璇诲彇鎶ユ枃锛浡燑/p>

AEnableErrorFrame[IN]锛氭槸鍚︽帴鏀堕敊璇抚銆傚鏋滆缃负 False锛屽垯椹卞姩鐩 鎺ユ妸 閿欒甯ф姏寮冩帀锛汓/p>

AUseHWTime[IN]锛氭槸鍚︿娇鐢ㄨ澶囪繛鎺ユ椂闂达紱

ATSType[IN] :璁剧疆涓篎alse 鍗冲彲锛汓/p>

杩斿洖鍊硷細鏃燑/p>


finalize_lib_tscan

浣滅敤锛氬湪閫€鍑虹▼搴忎箣鍓嶏紝閲婃斁 CAN 妯″潡锛屽拰鍒涘缓鍑芥暟initialize_lib_tscan 鍑芥暟閰嶅浣跨敤銆侟/p>

杈撳叆鍙傛暟锛氭棤

杩斿洖鍊硷細鏃燑/p>


tscan_get_device_info_detail

浣滅敤锛氳幏鍙栬澶囦俊鎭?/p>

杈撳叆鍙傛暟锛欬/p>

ADeviceIndex[IN]锛氳澶囩储寮曞€硷紱

AManufacturer [OUT]锛氬埗閫犲晢锛汓/p>

AProduct[OUT] 锛氫骇鍝佸悕绉帮紱

ASerial[OUT] 锛毬犲簭鍒楀彿锛汓/p>

ADeviceType[OUT] 锛氳澶囩被鍨嬶紱

ADeviceName[OUT] 锛氳澶囧悕绉帮紱

ACANChannelCount[OUT] 锛欳AN閫氶亾鏁伴噺锛汓/p>

AIsCAN FD[OUT] 锛氭槸鍚︽敮鎸丆AN FD锛汓/p>

ALINChannelCount[OUT] 锛歀IN閫氶亾鏁伴噺锛汓/p>

AFRChannelCount[OUT] 锛欶R閫氶亾鏁伴噺锛汓/p>

AEthernetChannelCount[OUT] 锛氫互澶綉閫氶亾鏁伴噺锛汓/p>


tscan_connect

浣滅敤锛氳繛鎺ヨ澶囷紝骞惰幏鍙栬璁惧鐨勫敮涓€鍙ユ焺

杈撳叆鍙傛暟锛欬/p>

ADeviceSerial锛氳幏鍙栨寚瀹氬簭鍒楀彿鐨勮澶?璇ュ弬鏁颁负绌哄瓧绗﹀垯琛ㄧず鑾峰彇浠绘剰澶勪簬杩炴帴鐘舵€佺殑璁惧锛汓/p>

AHandle锛氳澶囧彞鏌勶紝鍚庣画鎿嶄綔纭欢閮介渶瑕佹牴鎹鍞竴璁惧鍙ユ焺杩涜鎿嶄綔锛汓/p>


tscan_scan_devices

浣滅敤锛氭壂鎻忓湪绾胯澶囨暟閲廃/p>

杈撳叆鍙傛暟锛欬/p>

ADeviceCount[OUT]锛氳繑鍥炲湪绾胯澶囨暟閲忥紱


tscan_config_can_by_baudrate

浣滅敤锛氶厤缃瓹AN鎬荤嚎娉㈢壒鐜嘃/p>

AHandle:璁惧鍙ユ焺锛汓/p>

AChnIdx:搴旂敤绋嬪簭閫氶亾缂栧彿锛汓/p>

ARateKbps:娉㈢壒鐜囷紱

A120OhmConnected锛氭槸鍚︿娇鑳藉唴閮ㄧ粓绔數闃伙紱

tscan_transmit_can_sync

浣滅敤锛氬彂閫 CAN 鎶ユ枃锛屽苟妫€娴嬪埌鍙戦€佹垚鍔熷悗锛屾墠閫€鍑烘鍑芥暟銆傛鍑芥暟杩斿洖鎴愬姛锛屼唬琛 CAN 鎶ユ枃涓€瀹氬凡缁忔垚鍔熷彂閫佸埌浜 CAN 鎬荤嚎涓婇潰銆侟/p>

杈撳叆鍙傛暟锛欬/p>

ADeviceHandle锛氳澶囧彞鏌勶紱

ACAN锛氭姤鏂囨暟鎹紱

ATimeoutMS锛氬悓姝ョ瓑寰呰秴鏃舵椂闂达紱


tscan_transmit_can_async

浣滅敤锛氫互寮傛鐨勬柟寮忓彂閫丆AN鎶ユ枃

杈撳叆鍙傛暟锛欬/p>

ACAN锛欳AN 鏁版嵁鍖呫€俆LIBCAN 鏁版嵁缁勬垚璇锋煡CAN銆丆AN FD鏁版嵁缁勬垚绔犺妭銆侟/p>


tscan_add_cyclic_msg_can

浣滅敤锛氬鍔犲懆鏈熷彂閫佺殑鎶ユ枃

杈撳叆鍙傛暟锛欬/p>

ADeviceHandle:鎿嶄綔璁惧鍙ユ焺

ACAN锛欳AN鏁版嵁鍖咃紱

APeriodMS:鍛ㄦ湡鍊硷紱


tscan_delete_cyclic_msg_can

浣滅敤锛氬垹闄ゅ懆鏈熸€у彂閫 CAN 鎶ユ枃

ACAN锛氶渶瑕佽鍒犻櫎鐨勬槸銆佸懆鏈熸姤鏂囷紱

tsfifo_receive_can_msgs

浣滅敤锛氳鍙栫‖浠剁紦瀛樹腑鐨勬姤鏂囨暟鎹寘銆侟/p>

杈撳叆鍙傛暟锛欬/p>

ADeviceHandle锛氳澶囧彞鏌勶紱

ACANBuffers:鏁版嵁 Buffer锛岀敤浜庡瓨鍌ㄨ鍙栧埌鐨勬姤鏂囷紝璇 Buffer 闇€瑕佸嚱鏁拌皟鐢ㄦ柟鍒涘缓锛汓/p>

ACANBufferSize:娑堟伅 Buffer 鐨勫ぇ灏忥紱

AChn:鐩爣閫氶亾锛氬浜庡閫氶亾璁惧锛屾湰鍑芥暟閫夋嫨璇诲彇鍝竴涓€氶亾鐨勬暟鎹紝璇ュ弬鏁板彲浠ヤ负绌猴紝榛樿涓洪€氶亾 1锛汓/p>

ARxTx:==0:浠呬粎鎺ユ敹 Rx 鎶ユ枃锛?gt;0: Tx Rx 鎶ユ枃閮借鍙栧洖鏉ワ紝璇ュ弬鏁板彲浠ヤ负绌猴紝榛樿涓哄彧鎺ユ敹 Rx 鎶ユ枃锛汓/p>


tsfifo_add_can_canfd_pass_filter

浣滅敤锛氱敤鎴峰鏋滃彧鎯虫帴鏀剁壒瀹 ID 鎶ユ枃鐨勬椂鍊欙紝闇€瑕佽皟鐢ㄦ鍑芥暟

杈撳叆鍙傛暟锛欬/p>

ADeviceHandle锛氳澶囧彞鏌勶紱

AChnIdx锛氶€氶亾绱㈠紩锛汓/p>

AIdentifier锛氭姤鏂囨爣璇嗙锛汓/p>

AIsStd锛氭槸鍚︽爣鍑嗗抚锛汓/p>

tsfifo_delete_can_canfd_pass_filter

浣滅敤锛氬彇娑堟姤鏂囪繃婊|/p>

杈撳叆鍙傛暟锛欬/p>

ADeviceHandle锛氳澶囧彞鏌勶紱

AChnIdx锛氶€氶亾绱㈠紩锛汓/p>

AIdentifier锛氭姤鏂囨爣璇嗙锛汓/p>

AIsStd锛氭槸鍚︽爣鍑嗗抚锛汓/p>

5.VB6.0 Demo瀹炵幇鏁堟灉

1锛夌偣鍑籟鎵弿璁惧],鑾峰彇鍦ㄧ嚎璁惧鏁伴噺鎵撳嵃浜庡彸杈规帶浠朵腑銆侟/p>

2锛夌偣鍑籟鏌ヨ璁惧淇℃伅],鑾峰彇璁惧鍏蜂綋淇℃伅鎵撳嵃浜庡彸杈规帶浠朵腑銆侟/p>

3锛夌偣鍑籟杩炴帴]瀹屾垚纭欢杩炴帴锛屾墦鍗拌繛鎺ユ垚鍔熸棩蹇楀強褰撳墠璁惧鍙ユ焺浜庡彸杈规帶浠朵腑銆侟/p>

4锛夌偣鍑籟閰嶇疆纭欢閫氶亾]锛屽畬鎴愰€氶亾鍙婃尝鐗圭巼璁剧疆銆侟/p>

5.锛夌偣鍑籟閫氶亾涓€鍙戦€佹櫘閫氭姤鏂嘳鍗曞抚鍙戦€?x7B銆侟/p>

6锛夌偣鍑籟浠庨€氶亾2鎺ユ敹CAN鎶ユ枃]锛岃鍙朏IFO涓殑鎶ユ枃鏁版嵁鏄剧ず鍦ㄤ笅鏂筁istBox涓€侟/p>

7锛夌偣鍑籟鍙戦€佸懆鏈熸姤鏂嘳 ,鎶ユ枃0x29A 鎸夌収50ms鍛ㄦ湡鍙戦€併€侟/p>

8锛夌偣鍑籟鍋滄鍛ㄦ湡鍙戦€乚 ,鎶ユ枃0x29A鍋滄鍛ㄦ湡鍙戦€併€侟/p>

9锛夌偣鍑籟浠庨€氶亾2鎺ユ敹CAN鎶ユ枃],璇诲彇FIFO涓殑鎶ユ枃鏁版嵁鏄剧ず瀛愬晩涓嬫柟ListBox涓€傚鍥?鎵€绀恒€侟/p>

鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo

04銆佺枒闅捐В绛旓紙QA锛堻/h2>

Q锛氳繛鎺ヤ箣鍚庯紝璁惧涓€鐩村湪鎺ユ敹娑堟伅锛屾鏃舵垜寮€鍚繃婊や箣鍚庯紝鍐嶅幓鍙戦€佹姤鏂囷紝鎺ユ敹鎶ユ枃鐨勬椂鍊欙紝鏄笉鏄鎶婁箣鍓嶅瓨鐨勬暟鎹彇鍑烘潵锛岀洿鍒拌鍙栧埌杩囨护鐨処D锛烖/p>

A锛氬鐨勩€傛坊鍔犺繃婊ゅ悗涓诲姩鎶婃棫鐨勭紦瀛樼粰娓呴櫎鎺夈€傛竻闄ょ紦瀛樺嚱鏁帮細tsfifo_clear_can_receive_buffers銆侟/p>

Q锛氬嚱鏁扮殑杩斿洖鍊间唬琛ㄤ粈涔堟剰鎬濓紵

A锛氬嚱鏁拌繑鍥炲€间负0鏃朵唬琛ㄥ嚱鏁版墽琛屾垚鍔燂紝鍏朵粬鍊间唬琛ㄥ嚱鏁版墽琛屽け璐ャ€傚叿浣撳け璐ュ師鍥犳弿杩板彲浠ユ牴鎹甌SMaster鍐呯郴缁熷唴缃父鏁拌繘琛屾煡琛ㄣ€傚杩斿洖鍊间负3浠h〃鈥滆澶囨湭鎵惧埌鈥濓紝杩欐椂鍊欏氨瑕佹鏌ュ綋鍓峊SCAN璁惧鏄惁杩炴帴姝e父浜嗐€侟/p>

鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo

The post 骞茶揣鍒嗕韩 | 鍩轰簬VB6.0 瀹炵幇 CAN淇″彿鏀跺彂 Demo first appeared on 涓婃捣鍚屾槦鏅鸿兘绉戞妧鏈夐檺鍏徃.

]]>
/vb6-0-realize-can-signal-transceiver-demo/feed/ 0