From b07ff99b4aedf3dcf4390a4081b0067787f41aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20S=FCltrop?= Date: Mon, 9 Jul 2012 11:24:54 +0200 Subject: [PATCH] Offset and scaling are taken into account when calculating signal values. --- CANLibrary/CanSignal.py | 23 +++++++++++------------ CANLibrary/CanSignal.pyc | Bin 1768 -> 1864 bytes CANLibrary/PCan.py | 2 +- CANLibrary/PCan.pyc | Bin 2712 -> 2712 bytes 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/CANLibrary/CanSignal.py b/CANLibrary/CanSignal.py index 0107a1e..6af2574 100644 --- a/CANLibrary/CanSignal.py +++ b/CANLibrary/CanSignal.py @@ -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 human. ''' - Begin = 0; - Length = 0; - Data = []; - Label = '' - def __init__(self, SignalBegin, SignalLength, SignalData, SignalLabel): + def __init__(self, SignalBegin, SignalLength, SignalOffset, SignalScaling, SignalData, SignalLabel): ''' Constructor. @param SignalBegin: At which bit does the Signal begin in a CAN message? @@ -28,15 +24,16 @@ class CanSignal(object): ''' self.Begin = SignalBegin self.Length = SignalLength + self.Offset = SignalOffset + self.Scaling = SignalScaling + self.Label = SignalLabel + self.Data = [] - for i in range(0, int(SignalLength/8)+1): - self.Data.append ( (SignalData >> 8) & 0xff ) - - #self.Data = SignalData + self.SetData(SignalData) + - - def SetData(self, Data): + def SetData(self, SignalData): ''' 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! @@ -44,4 +41,6 @@ class CanSignal(object): ''' #if not (len(Data) == self.Length): # sys.exit('Data has invalid length') - self.Data = Data \ No newline at end of file + tmpData = int((SignalData+self.Offset)*self.Scaling) + for i in range(0, int(self.Length/8)+1): + self.Data.append ( (tmpData >> 8) & 0xff ) \ No newline at end of file diff --git a/CANLibrary/CanSignal.pyc b/CANLibrary/CanSignal.pyc index b05993c16e3d29e97788e55156d4bce734030394..90bfd0fda78b9585a29b1ad73f3d973e69b2affe 100644 GIT binary patch delta 568 zcmX|7u}T9$5S`t<+e_3$3~Imx6%oBcY(*>#7_=}bYzje?aON%{As*4&!XnWkmNs!g z`~e$VvGND}60x%J2b@`>9P{qY&g{;-_nCRmO7Wc;+k70#=aoeOhyacmgoqqM2DeBA zgxnGbRMi*5ulriv!&VB8v4fH9A@msZ0BT6MC723JFm)`!R9fOd6Wg%aC2ZrN3j+oW zM^=6Q!nnswQ4}{MK6}_`B$3uMu38T|t+=UOSza9IncpxInu;^&$Pt)(ga;- zHRGT&dLi?FFnY&4hz0W|sy8{TBv}OT(#(Dwk=IEcO`v&JW`IQhDQz>z)Ak&uarZul zs}g8*i`f<|ION<6)g)TZE&93udQlhXg za9}IeivEgLvDz<#xEU$hPLV^JAn10ZIP|GUr3gr_wMCzI$rke}Dzl1gT*gS~4y5MT kD)U|QY5PiFs-F!%*B2kGD2nt>yf}IwAfDxOJ;!=nKInLY>F31scTUbOaVyA_1 zEB}J6tzfBtKub%p_YXL`7+L1+o7uPfX7;W0U6jsGvG8y+mXAA|03x8x5E62P3~k3^ z23@KMgdA;&(7`pOS%eu&a`0NN7=PSf#qySVHzE@tP88Vy^*{y6bQ$#fQ4+dR*PL}daH{%6G!9gbPJBO3V&(hu z#M1%+vUx^}udoiMY!Y_HA{G8;r0;9FT&J0@O4DU@;$;b3bHU3`QhnzfE}D8PQl^_# zqN$M}=jL@yu2rnwG;ObYrfqN9z>NNs&1H`$rYO=9ffSPcEuNos&D7qUewMetZ diff --git a/CANLibrary/PCan.py b/CANLibrary/PCan.py index 322a423..9e259cd 100644 --- a/CANLibrary/PCan.py +++ b/CANLibrary/PCan.py @@ -62,4 +62,4 @@ class PcanAdapter (object): msg.DATA[0:len(Message.Data)] = Message.Data self.Pcan.Write(self.Channel, msg) - #print ('Message ' + Message.Label + ' written.\n') \ No newline at end of file + #print ('Message ' + Message.Label + ' written.') \ No newline at end of file diff --git a/CANLibrary/PCan.pyc b/CANLibrary/PCan.pyc index 4dbe897ee0fecbd38f201a933b5a2c2eca366ea6..22d961f61925b9105bd892d3feef26307ca89e37 100644 GIT binary patch delta 16 YcmbOsIzyD5`7