ÕâÊǹØÓÚt³ÌÐò»·¾³±äÁ¿3ƪϵÁÐÎÄÕµĵÚ2ƪ£º
- »·¾³±äÁ¿¼ò½é
- ´ÓCANlib·ÃÎÊ»·¾³±äÁ¿
- ÔÆº£ÓÎÏ· TRXºÍ»·¾³±äÁ¿
ÕâÊǹØÓÚt³ÌÐò»·¾³±äÁ¿3ƪϵÁÐÎÄÕµĵÚ2ƪ£º
±¾ÏµÁеĵÚһƪÎÄÕ½éÉÜÁË»·¾³±äÁ¿£¬ÒÔ¼°ÈçºÎÔÚt³ÌÐòÖÐÓ¦Óû·¾³±äÁ¿¡£µÚ¶þƪ½«½éÉÜÈçºÎʹÓÃCANlib·ÃÎÊ»·¾³±äÁ¿¡£È«²¿³ÌÐòÁбí¼ûhttp://github.com/ÔÆº£ÓÎÏ·/developer-blog¡£
»·¾³±äÁ¿ÓÃÓÚÔÚ²»Í¬µÄt³ÌÐòÖ®¼äͨÐÅ£¬»òÕßʹÓÃCANlibÓëPCͨÐÅ¡£ »·¾³±äÁ¿±ØÐëÔÚt³ÌÐòµÄenvvar²¿·ÖÖж¨Òå¡£
ΪÁË´ÓCANlib·ÃÎÊ»·¾³±äÁ¿£¬ÄãÐèҪΪ»·¾³±äÁ¿ÉèÖþä±ú£º
kvScriptEnvvarOpen (const int hnd, char *envvarName, int *envvarType, int *envvarSize)
´ò¿ªÏÖÓеĻ·¾³±äÁ¿£¬²¢·µ»Ø¾ä±úÒÔ¼°»·¾³±äÁ¿µÄÀàÐͺʹóС¡£ÎªÁËʹ»·¾³±äÁ¿´æÔÚ£¬»·¾³±äÁ¿±ØÐëÔÚCANͨµÀ¾ä±úhnd
Ö¸ÏòµÄÉ豸¼ÓÔØµÄt³ÌÐòÖж¨Òå¡£kvScriptEnvvarClose :: (kvEnvHandle eHnd)
¹Ø±Õ»·¾³±äÁ¿ (ÒÑʹÓÃkvScriptEnvvarOpen()
´ò¿ª)¡£ÄãÐèÒª¼Çס»·¾³±äÁ¿µÄÊý¾ÝÀàÐÍ¡£Èç¹û³¢ÊÔʹÓôíÎóÀàÐÍ·ÃÎÊ»·¾³±äÁ¿£¬Ôò·ÃÎʽ«Ê§°Ü¡£¸ù¾Ý²»Í¬µÄÊý¾ÝÀàÐÍ£¬¿ÉÒÔʹÓò»Í¬µÄº¯Êý·ÃÎÊ»·¾³±äÁ¿£º
kvScriptEnvvarSetInt :: (kvEnvHandle eHnd, int val)
ÉèÖÃÓÉeHndÖ¸ÏòµÄ»·¾³±äÁ¿µÄÖµ£¬ÆäÒѶ¨ÒåΪint
¡£kvScriptEnvvarGetInt :: (kvEnvHandle eHnd, int *val)
¼ìË÷¶¨ÒåΪint
µÄ»·¾³±äÁ¿µÄÖµ¡£kvScriptEnvvarSetFloat :: (kvEnvHandle eHnd, float val)
ÉèÖö¨ÒåΪfloat
µÄ»·¾³±äÁ¿µÄÖµ¡£kvScriptEnvvarGetFloat :: (kvEnvHandle eHnd, float *val)
¼ìË÷¶¨ÒåΪfloat
µÄ»·¾³±äÁ¿µÄÖµ¡£»·¾³±äÁ¿Ò²¿ÉÒÔ¶¨ÒåΪ³¤¶È¸ß´ïENVVAR_MAX_SIZE
µÄchar
Êý×顣ΪÁ˼õÉÙ´«ÊäµÄÊý¾ÝµÄ´óС£¬Ê¹ÓÃstart_index
ºÍdata_len
À´½»»»¶¨ÒåΪchar
Êý×éµÄ»·¾³±äÁ¿¡£ Èç¹ûÄãÒÑ»®·ÖÊý¾Ý²¢ÖªµÀÄã¸ÐÐËȤµÄÊý¾Ý²¿·Ö£¬Õâ¿ÉÄܺÜÓаïÖú¡£
kvScriptEnvvarSetData :: (kvEnvHandle eHnd, void *buf, int start_index, int data_len)
ÉèÖö¨ÒåΪchar
Êý×éµÄ»·¾³±äÁ¿ÖеÄÊý¾Ý×Ö½Ú·¶Î§¡£kvScriptEnvvarGetData :: (kvEnvHandle eHnd, void *buf, int start_index, int data_len)
´Ó¶¨ÒåΪchar
Êý×éµÄ»·¾³±äÁ¿ÖмìË÷Êý¾Ý×Ö½Ú·¶Î§¡£ÏÖÔÚ£¬ÎÒÃÇ´ÓPythonµÄ½Ç¶È³¢ÊÔ̸ÂÛÒ»ÏÂt³ÌÐò¡£
ÏÖÔÚÎÒÃÇ¿ÉÒÔÀ´²âÊÔÔÚ±¾ÏµÁеÚһƪÎÄÕÂÖиÅÊö¹ýµÄÓëһ̨ÔËÐÐt³ÌÐòµÄÉ豸½øÐн»»¥¡£ÎªÁËÔËÐвâÊÔ£¬ÎÒÃÇÐèÒªÔËÐаüº¬ÔÚCANlib SDK v5.12ÖеĻ·¾³±äÁ¿µÄ°ü×°Æ÷¡£Ô¤·¢²¼°æ±¾¼ûhttps://github.com/ÔÆº£ÓÎÏ·/canlib-samples¡£
import time
import kvDevice
# Define some values and messages to send to our device
# In order to hide these secret messages, we write them encoded ;-)
messages = [(1, "-Jung unccraf gb n sebt'f pne jura vg oernxf qbja?"),
(2, "-Vg trgf gbnq njnl."),
(3, "-Jul jnf fvk fpnerq bs frira?"),
(4, "-Orpnhfr frira 'ngr' avar."),
(5, "-Jung vf gur qvssrerapr orgjrra fabjzra naq fabjjbzra?"),
(6, "-Fabjonyyf."),
(7, "-Jurer qvq lbh svaq gurfr?"),
(8, "-uggc://jjj.ynhtusnpgbel.pbz/wbxrf/jbeq-cynl-wbxrf")]
# We will be using the first Eagle device found connected to the PC
# For an introduction to the kvDevice object, see
# http://www.kvaser.com/developer-blog/object-oriented-approach-accessing-kvaser-device-python-3-3/
eagle_ean = "73-30130-00567-9"
dev = kvDevice.kvDevice(ean=eagle_ean)
# Open a handle to the device
dev.open()
# Load the t program into slot 0
dev.channel.scriptLoadFile(0, "envvar.txe")
# Start the program in slot 0
dev.channel.scriptStart(0)
# Our protocol states that we should wait until HostIdConnected is zero before trying to connect
print "Waiting for device to be free..."
# All calls to the kvScriptEnvarOpen() and kvScriptEnvvarGetXXX() functions are hidden in the
# envvar class inside canlib.py. Here we can access it directly with dev.channel.envvar.YYY
while dev.channel.envvar.HostIdConnected != 0:
time.sleep(0.2)
# Now we try to connect by writing our unique id into the environment variable HostIdRequest.
# We wait until our connection was accepted, i.e. HostIdConnected contains our id.
print "Requesting connection..."
myHostId = 42
print "Waiting for device to connect..."
while dev.channel.envvar.HostIdConnected != myHostId:
if dev.channel.envvar.HostIdConnected == 0:
print "Requesting connection..."
if dev.channel.envvar.HostIdRequest != myHostId:
dev.channel.envvar.HostIdRequest = myHostId
time.sleep(0.2)
print "Connected!"
# Start sending our messages to the device
for (severity, message) in messages:
print "Sending message %d" % severity
dev.channel.envvar.Severity = severity
dev.channel.envvar.Message = message.encode('rot13')
time.sleep(4)
print "Disconnect..."
dev.channel.envvar.HostIdRequest = 0
# Stop the script in slot 0
dev.channel.scriptStop(0)
Ö´ÐÐÉÏÃæµÄPython´úÂë»á²úÉúÈçϵıê×¼Êä³ö£º
Waiting for device to be free... Requesting connection... Waiting for device to connect... Connected! Sending message 1 Sending message 2 Sending message 3 Sending message 4 Sending message 5 Sending message 6 Sending message 7 Sending message 8 Disconnect...
ÎÒͬÒâÕⲢûÓзdz£µØ¼¤¶¯ÈËÐÄ£¬ËùÒÔÔÚ±¾ÏµÁеÄ×îºóһƪÎÄÕÂÖУ¬ÎÒÃǽ«Ò»Æð¿´¿´ÈçºÎʹÓÃÔÆº£ÓÎÏ· TRXÓëÕâЩ»·¾³±äÁ¿½øÐн»»¥£¬Ôƺ£ÓÎÏ· TRXÊÇÔÚÔÆº£ÓÎÏ·É豸ÉÏ¿ª·¢t³ÌÐòµÄÇáÁ¿¼¯³É¿ª·¢»·¾³£¨IDE£©¡£
Margus CarlssonÊÇÔÆº£ÓÎÏ· AB¹«Ë¾µÄÈí¼þ¿ª·¢ÈËÔ±£¬´Ó2007ÄêÒÔÀ´Éî¶È²ÎÓëÁËÔÆº£ÓÎÏ·¹Ì¼þºÍÈí¼þµÄ¿ª·¢¡£Ëû»¹ÎªÔƺ£ÓÎÏ·µÄ¼¼Êõ²©¿Í׫дÁËÐí¶àÓÃÁ÷ÐеÄPythonÓïÑÔ±àдӦÓóÌÐòµÄÎÄÕ¡£