Bugfix: Path to PCANBasic was not correct. Now using a relative path to the sub directory.

This commit is contained in:
Christian Sueltrop 2013-10-02 12:17:32 +02:00
parent dc965eb600
commit a04155be8c
13 changed files with 685 additions and 647 deletions

17
.project Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>CANLibrary</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>

12
.pydevproject Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?>
<pydev_project>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/CANLibrary</path>
<path>/CANLibrary/PCANBasic</path>
<path>/CANLibrary/pycrc</path>
</pydev_pathproperty>
</pydev_project>

View file

@ -0,0 +1,6 @@
eclipse.preferences.version=1
encoding//CANLibrary/CanMessage.py=UTF-8
encoding//CANLibrary/CanSignal.py=UTF-8
encoding//CANLibrary/PCan.py=UTF-8
encoding//CANLibrary/example.py=UTF-8
encoding//pycrc/crc_algorithms.py=latin1

View file

@ -1,80 +1,83 @@
# -*- coding: UTF-8 -*- # -*- coding: UTF-8 -*-
''' '''
Example for creating and sending CAN messages via PCAN using the CanMessage, CanSignal and PCan classes. Example for creating and sending CAN messages via PCAN using the CanMessage, CanSignal and PCan classes.
@author: Christian Sültrop @author: Christian Sültrop
''' '''
from CanMessage import CanMessage from CanMessage import CanMessage
from CanSignal import CanSignal from CanSignal import CanSignal
from PCan import PcanAdapter from PCan import PcanAdapter
import time import time
print '\nCreate a PCAN adapter' print '\nCreate a PCAN adapter'
pcan = PcanAdapter(PcanAdapter.Baudrate['500k']) pcan = PcanAdapter(PcanAdapter.Baudrate['500k'])
pcan.initialize() pcan.initialize()
print '\ncreate some messages' print '\ncreate some messages'
mMotor_1 = CanMessage(0x280, 8, 10, 'mMotor_1') mMotor_1 = CanMessage(0x280, 8, 10, 'mMotor_1')
pcan.addMessage(mMotor_1) pcan.addMessage(mMotor_1)
print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data
mMotor_2 = CanMessage(0x288, 8, 20, 'mMotor_2') mMotor_2 = CanMessage(0x288, 8, 20, 'mMotor_2')
pcan.addMessage(mMotor_2) pcan.addMessage(mMotor_2)
print 'mMotor_2.Data', pcan.Messages['mMotor_2'].Data print 'mMotor_2.Data', pcan.Messages['mMotor_2'].Data
print '\ncreate some Signals' print '\ncreate some Signals'
# for mMotor_1 # for mMotor_1
MO1_Leergas = CanSignal(0, 1, 0, 1, 1, 'MO1_Leergas') MO1_Leergas = CanSignal(0, 1, 0, 1, 1, 'MO1_Leergas')
MO1_Sta_Pedal = CanSignal(1, 1, 0, 1, 1, 'MO1_Sta_Pedal') MO1_Sta_Pedal = CanSignal(1, 1, 0, 1, 1, 'MO1_Sta_Pedal')
MO1_Mo_m_ex = CanSignal(8, 8, 0, 1, 0, 'MO1_Mo_m_ex') MO1_Mo_m_ex = CanSignal(8, 8, 0, 1, 0, 'MO1_Mo_m_ex')
value = 3000 value = 3000
MO1_Drehzahl = CanSignal(16, 16, 0, 0.25, value, 'MO1_Drehzahl') # split into two bytes MO1_Drehzahl = CanSignal(16, 16, 0, 0.25, value, 'MO1_Drehzahl') # split into two bytes
print '\nadd Signals to the Messages' print '\nadd Signals to the Messages'
pcan.Messages['mMotor_1'].addSignal(MO1_Leergas) pcan.Messages['mMotor_1'].addSignal(MO1_Leergas)
pcan.Messages['mMotor_1'].addSignal(MO1_Sta_Pedal) pcan.Messages['mMotor_1'].addSignal(MO1_Sta_Pedal)
pcan.Messages['mMotor_1'].addSignal(MO1_Mo_m_ex) pcan.Messages['mMotor_1'].addSignal(MO1_Mo_m_ex)
pcan.Messages['mMotor_1'].addSignal(MO1_Drehzahl) pcan.Messages['mMotor_1'].addSignal(MO1_Drehzahl)
print "pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].Data", pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].Data print "pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].Data", pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].Data
# for mMotor_2 # for mMotor_2
MO2_Kuehlm_T = CanSignal(8, 8, -48, 0.75, 60, 'MO2_Kuehlm_T') MO2_Kuehlm_T = CanSignal(8, 8, -48, 0.75, 60, 'MO2_Kuehlm_T')
pcan.Messages['mMotor_2'].addSignal( MO2_Kuehlm_T ) pcan.Messages['mMotor_2'].addSignal( MO2_Kuehlm_T )
pcan.Messages['mMotor_2'].addSignal( CanSignal(24, 8, 0, 1, 0, 'MO2_GRA_Soll') ) pcan.Messages['mMotor_2'].addSignal( CanSignal(24, 8, 0, 1, 0, 'MO2_GRA_Soll') )
pcan.Messages['mMotor_2'].addSignal( CanSignal(0, 6, 0, 1, 44, 'MO2_CAN_Vers') ) pcan.Messages['mMotor_2'].addSignal( CanSignal(0, 6, 0, 1, 44, 'MO2_CAN_Vers') )
print '\nManipulate Signals' print '\nManipulate Signals'
pcan.Messages['mMotor_1'].Signals['MO1_Leergas'].SetData( 0 ) pcan.Messages['mMotor_1'].Signals['MO1_Leergas'].SetData( 0 )
print '\nSend the messages' print '\nSend the messages'
pcan.Messages['mMotor_1'].composeData() pcan.Messages['mMotor_1'].composeData()
print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data
pcan.sendMessage(pcan.Messages['mMotor_1']) pcan.sendMessage(pcan.Messages['mMotor_1'])
pcan.Messages['mMotor_2'].composeData() pcan.Messages['mMotor_2'].composeData()
print 'mMotor_2.Data', pcan.Messages['mMotor_2'].Data print 'mMotor_2.Data', pcan.Messages['mMotor_2'].Data
pcan.sendMessage(pcan.Messages['mMotor_2']) pcan.sendMessage(pcan.Messages['mMotor_2'])
# receive messages, if the signal MO1_Drehzahl has changed, print the new value # receive messages, if the signal MO1_Drehzahl has changed, print the new value
while True: while True:
pcan.sendMessage(pcan.Messages['mMotor_2']) #print 'send'
dataOld = pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData() pcan.sendMessage(pcan.Messages['mMotor_2'])
pcan.receiveMessage() dataOld = pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData()
if pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData() != dataOld:
print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data #print 'receive'
print 'GetData()', pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData() pcan.receiveMessage()
time.sleep(0.01) if pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData() != dataOld:
print 'mMotor_1.Data', pcan.Messages['mMotor_1'].Data
print 'GetData()', pcan.Messages['mMotor_1'].Signals['MO1_Drehzahl'].GetData()
# wait a while to make sure messages can be sent and end time.sleep(0.01)
time.sleep(1)
print 'end of program'
# wait a while to make sure messages can be sent and end
time.sleep(1)
print 'end of program'

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.