CANFilter hinzugefügt

Initiales hinzufügen des CAN-Filters, eingehende CAN-Kommunikation
getestet, Mittelwertberechung nach n eingegangen Nachrichten, Nachrichten
und Signale definiert
This commit is contained in:
Philipp Rauch 2013-11-13 18:14:34 +01:00
parent 4380244484
commit 47ecc5fbe2
2 changed files with 89 additions and 0 deletions

88
scr/CANFilter.py Normal file
View file

@ -0,0 +1,88 @@
'''
Created on 13.11.2013
@author: Philipp Rauch
@version: 0.01
'''
from CanMessage import CanMessage
from CanSignal import CanSignal
from PCan import PcanAdapter
import time
import sys
import MySQLdb
debug = False
pcan = PcanAdapter(PcanAdapter.Baudrate['250k'])
pcan.initialize()
dc_battery = CanMessage(0x3A4, 8, 50, 'dc_battery')
dc_grid = CanMessage(0x3A5, 8, 50, 'dc_grid')
dc_pv = CanMessage(0x3A6, 8, 50, 'dc_pv')
dc_charging = CanMessage(0x3A7, 8, 50, 'dc_charging')
pcan.addMessage(dc_battery)
pcan.addMessage(dc_grid)
pcan.addMessage(dc_pv)
pcan.addMessage(dc_charging)
current = CanSignal(0, 16, 0, 0.001, 0, 'current')
voltage = CanSignal(16, 16, 0, 0.01, 0, 'voltage')
capacity = CanSignal(32, 11, 0, 0.05, 0, 'capacity')
isMaster = CanSignal(56, 1, 0, 1, 0, 'isMaster')
isFeed = CanSignal(57, 1, 0, 1, 0, 'isFeed')
isCharging = CanSignal(57, 1, 0, 1, 0, 'isCharging')
isOn = CanSignal(58, 1, 0, 1, 0, 'isOn')
pcan.Messages['dc_battery'].addSignal( current )
pcan.Messages['dc_battery'].addSignal( voltage )
pcan.Messages['dc_battery'].addSignal( capacity )
pcan.Messages['dc_battery'].addSignal( isMaster )
pcan.Messages['dc_battery'].addSignal( isCharging )
pcan.Messages['dc_grid'].addSignal( current )
pcan.Messages['dc_grid'].addSignal( voltage )
pcan.Messages['dc_grid'].addSignal( isMaster )
pcan.Messages['dc_grid'].addSignal( isFeed )
pcan.Messages['dc_grid'].addSignal( isOn )
pcan.Messages['dc_pv'].addSignal( current )
pcan.Messages['dc_pv'].addSignal( voltage )
pcan.Messages['dc_charging'].addSignal( current )
pcan.Messages['dc_charging'].addSignal( voltage )
battery_current = []
battery_voltage = []
battery_capacity = []
battery_timestamp = []
def mean(l):
return float(sum(l))/len(l) if len(l) > 0 else 0
while True:
receiveMessageId = pcan.receiveMessage()
if receiveMessageId == pcan.Messages['dc_battery'].Id:
battery_current.append(pcan.Messages['dc_battery'].Signals['current'].GetData())
battery_voltage.append(pcan.Messages['dc_battery'].Signals['voltage'].GetData())
battery_capacity.append(pcan.Messages['dc_battery'].Signals['capacity'].GetData())
battery_timestamp.append(pcan.Messages['dc_battery'].timestamp)
if len(battery_timestamp) == 10:
if debug:
print 'current: ', battery_current
print 'voltage: ', battery_voltage
print 'SoC: ', battery_capacity
print 'time: ', battery_timestamp
print 'current: ', mean(battery_current)
print 'voltage: ', mean(battery_voltage)
print 'SoC: ', mean(battery_capacity)
print 'time: ', mean(battery_timestamp)
del battery_current[:]
del battery_voltage[:]
del battery_capacity[:]
del battery_timestamp[:]
time.sleep(0.01)

View file

@ -5,6 +5,7 @@
Created on 24.10.2013
@author: Philipp Rauch
@version: 0.5
'''
from flask import Flask, jsonify, abort, make_response, request
from time import time