Offset and scaling are taken into account when calculating signal values.

This commit is contained in:
Christian Sltrop 2012-07-09 11:24:54 +02:00
parent 2aa6eb3da7
commit b07ff99b4a
4 changed files with 12 additions and 13 deletions

View file

@ -14,12 +14,8 @@ class CanSignal(object):
A Signal has a Begin, a Length and Data. The Label is a textual tag that identifies the Signal to A Signal has a Begin, a Length and Data. The Label is a textual tag that identifies the Signal to
a human. a human.
''' '''
Begin = 0;
Length = 0;
Data = [];
Label = ''
def __init__(self, SignalBegin, SignalLength, SignalData, SignalLabel): def __init__(self, SignalBegin, SignalLength, SignalOffset, SignalScaling, SignalData, SignalLabel):
''' '''
Constructor. Constructor.
@param SignalBegin: At which bit does the Signal begin in a CAN message? @param SignalBegin: At which bit does the Signal begin in a CAN message?
@ -28,15 +24,16 @@ class CanSignal(object):
''' '''
self.Begin = SignalBegin self.Begin = SignalBegin
self.Length = SignalLength self.Length = SignalLength
self.Offset = SignalOffset
self.Scaling = SignalScaling
self.Label = SignalLabel self.Label = SignalLabel
self.Data = []
for i in range(0, int(SignalLength/8)+1): self.SetData(SignalData)
self.Data.append ( (SignalData >> 8) & 0xff )
#self.Data = SignalData
def SetData(self, SignalData):
def SetData(self, Data):
''' '''
Updated the data of the Signal. Updated the data of the Signal.
The data is given to the Signal as full bytes, but only the bits up to Length may be used! The data is given to the Signal as full bytes, but only the bits up to Length may be used!
@ -44,4 +41,6 @@ class CanSignal(object):
''' '''
#if not (len(Data) == self.Length): #if not (len(Data) == self.Length):
# sys.exit('Data has invalid length') # sys.exit('Data has invalid length')
self.Data = Data tmpData = int((SignalData+self.Offset)*self.Scaling)
for i in range(0, int(self.Length/8)+1):
self.Data.append ( (tmpData >> 8) & 0xff )

Binary file not shown.

View file

@ -62,4 +62,4 @@ class PcanAdapter (object):
msg.DATA[0:len(Message.Data)] = Message.Data msg.DATA[0:len(Message.Data)] = Message.Data
self.Pcan.Write(self.Channel, msg) self.Pcan.Write(self.Channel, msg)
#print ('Message ' + Message.Label + ' written.\n') #print ('Message ' + Message.Label + ' written.')

Binary file not shown.