Exemplo n.º 1
0
 def __init__(self):
     can.rc['interface'] = 'socketcan_native'
     can.rc['channel'] = 'vcan0'
     can.rc['bitrate'] = 500000
     self.bus = Bus()
     self.buffered_reader = can.BufferedReader()
     self.notifier = can.Notifier(self.bus, [self.buffered_reader])
Exemplo n.º 2
0
def main():
    global device_id
    global encoder_value_send_task
    if len(sys.argv) != 2:
        usage()
        sys.exit(1)

    device_id = int(sys.argv[1])
    if device_id < 0 or device_id >= 63:
        usage()
        sys.exit(1)

    can.rc['interface'] = 'socketcan_ctypes'
    can.rc['channel'] = 'vcan0'

    bus = Bus()
    notifier = can.Notifier(bus, [Listener()])
    status_3_msg = can.Message(arbitration_id=(talon_srx.STATUS_3 | device_id),
                               extended_id=True,
                               data=make_status_3_msg())
    status_3_task = can.send_periodic(can.rc['channel'], status_3_msg, 0.1)
    while True:
        status_3_msg.data = make_status_3_msg()
        status_3_task.modify_data(status_3_msg)
        time.sleep(0.05)
    notifier.stop()
def Can(id):
    global adc_val
    can_interface = 'can0'
    bus = Bus(can_interface)

    print "send message..."
    Message.extended_id = False
    Message.extended_id = False
    Message.is_remote_frame = False
    Message.id_type = 1
    Message.is_error_frame=False
    if id==0x22:
        Message.arbitration_id=id
        Message.dlc=3
        adc_val1=adc_val/ 10
        adc_val2=adc_val %10
        #message data frame 
        Message.data=[0x00,adc_val1,adc_val2]
#exception for error handling 
    try:
        bus.send(Message);
        print"data=",Message.data
        print "id=",id

    except:
        print "OOPS somthing went wrong"
        sleep(3)
Exemplo n.º 4
0
	def __init__(self, interface, verbose = False, listeners = None):
		self.bus = Bus(interface, bustype = 'socketcan')
		self.verbose = verbose
		self.listeners = listeners
		self.bms = bms.bms()
		self.ccs = ccs.ccs()
		self.notifier = can.Notifier(self.bus, [self.on_message_received])
def main():
    data=0
    while(1):

             
        can_interface = 'can0'
        bus = Bus(can_interface)


        print "send message....."
        sleep(3)
        Message.extended_id =False
        Message.is_remote_frame = False
        Message.id_type = 1
        Message.is_error_frame=False
        Message.arbitration_id = 0x33
        Message.dlc = 1

        Message.data=[data]
        try:

            bus.send(Message);
            print Messgae.data

        except:

            print "invalid operation!!!!!!"
        sleep(0.1)
Exemplo n.º 6
0
def main():
    can_interface = 'can0'
    bus = Bus(can_interface)
    data_scoket = s.recv(1024)

    print(data_scoket)
    data_can = [0x01]
    if data_scoket[0] == '0':
        data_can = [0x00]
    elif data_scoket[0] == '+':
        data_can = [0x02]

    print(data_can)
    print "send a message..."
    Message.extended_id = False
    Message.is_remote_frame = False
    Message.id_type = 0
    Message.is_error_frame = False
    Message.arbitration_id = 0x65D
    Message.dlc = 1
    Message.data = data_can
    try:
        bus.send(Message)
    except:
        print "Upss something went wrong"
Exemplo n.º 7
0
 def __init__(self, interface, channel):
     can.rc['interface'] = interface
     can.rc['channel'] = channel
     log.info('Opening CAN connection on {0}'.format(can.rc['channel']))
     self.bus = Bus(bitrate=250000)
     self.periodic_tasks = list()
     self._rxHandlers = list()
Exemplo n.º 8
0
def producer(id):
    """:param id: Spam the bus with messages including the data id."""

    bus = Bus(can_interface)
    for i in range(16):
        msg = can.Message(arbitration_id=0x0cf02200, data=[id, i, 0, 1, 3, 1, 4, 1])
        bus.send(msg)
    # TODO Issue #3: Need to keep running to ensure the writing threads stay alive. ?
    time.sleep(2)
Exemplo n.º 9
0
    def __init__(self):

        super(CanStore, self).__init__()
        self.frameDictionary = {}

        # setup worker multiprocessing to listen to the can bus
        self.parent, self.child = Pipe()
        self.canWorker = Process(target=canListener, args=(self.child, ))
        self.canWorker.start()

        # set up can bus interface
        self.bus = Bus(self.can_interface)
Exemplo n.º 10
0
def main():
    can_interface = 'can1'
    bus = Bus(can_interface)

    try:
        while True:
            Message = bus.recv(0.0)
            if Message:
                check_rx(Message.arbitration_id, Message.data[0])

    except KeyboardInterrupt:
        bus.shutdown()
Exemplo n.º 11
0
def canListener(pipe):
    data = {}
    bus = Bus(env.bus)
    while 1:
        frame = bus.recv(timeout=0.005)
        data[hex(frame.arbitration_id)] = frame.data

        if (pipe.poll(timeout=0)):
            # flush out the pipe from any flags for writing
            while pipe.poll(timeout=0):
                pipe.recv()
            pipe.send(data)
    pipe.close()
    return  # execution really should not get here
Exemplo n.º 12
0
 def __init__(self, can_interface):
     can.rc['interface'] = 'socketcan_ctypes'
     if can_interface is None:
         can_interface = 'can0'
     self._can_interface = can_interface
     if not self.status():
         raise IOError("CAN Bus not available")
     self._bus = Bus(self._can_interface)
     self._bitrate = 500000
     if self._bus is None:
         raise IOError("Can't find CAN bus interface")
     self._rcv_thread_quit = False
     self._rcv_thread = None
     self._rcv_queue = queue.Queue(maxsize=1024)
Exemplo n.º 13
0
class CanMessageRead(object):
    bus = Bus(can_interface)

    def __init__(self):
        self.id = 0
        self.currentDistance = 0
        self.prevDistance = 0

    def readBus(self):
        try:
            msg = self.bus.recv()
            self.id = msg.data[0]
            self.prevDistance = self.currentDistance
            self.currentDistance = msg.data[1]
        except:
            print("TODO m: We need to catch this, yo")
Exemplo n.º 14
0
def main():
   can_interface = 'can1'
   bus = Bus(can_interface)
 
 
   print "Send a message..."
   Message.extended_id = True
   Message.is_remote_frame = False
   Message.id_type = 1
   Message.is_error_frame = False
   Message.arbitration_id = 0x65D
   Message.dlc = 1
   Message.data = [ 0x01]
   try:
       bus.send(Message);
   except:
       print "Ups something went wrong!"
Exemplo n.º 15
0
def response(payloads, quiet_response, channel_in):

    can.rc['interface'] = 'socketcan_ctypes'
    can.rc['channel'] = channel_in
    bus = Bus()
 
    send_recv = "receive" 


#    if(payloads != None):
#        continue
    
    consecutive_messages = 1;
    last_message_id = -1;

    mod = 1
    current = None

    while 1:
        if current != None:
            send_recv == "send"
        
        if send_recv == "receive":
            while 1:
                current = payloads.get()
                    #print(current)
                #    if current != None:
                print(current)
                #        break
                #    print(current)
                #    continue

        elif send_recv == "send":
            message = can.Message(extended_id = False, is_error_frame = False, arbitration_id = current.arbitration_id, data = [0])
            count = 0
            while 1:
                bus.send(message)
                count += 1
                if (count%mod)==0:
                    send_recv = "receive"
                    mod *= 2
                    current = None
                    break
Exemplo n.º 16
0
def main():
   data=0
   while(1):
        can_interface = 'can0'
        bus = Bus(can_interface)

        #print "Send a message...a heart beat"
        Message.extended_id = False
        Message.is_remote_frame = False
        Message.id_type = 1
        Message.is_error_frame = False
        Message.arbitration_id = 0x33
        Message.dlc = 1

        data=data+1
        Message.data = [data]
        try:
            bus.send(Message);
            print (Message.data)
        except:
            print ("Ups something went wrong!")
        sleep(0.1)
Exemplo n.º 17
0
def Can(id):
   can_interface = 'can0'
   bus = Bus(can_interface)
   
   Message.extended_id = False
   Message.is_remote_frame = False
   Message.id_type = 1
   Message.is_error_frame = False
   if id==0x22:
        Message.arbitration_id=id
        Message.dlc=3
        Message.data=[0x22]
   if id==0x11:
        Message.arbitration_id=id
        Message.dlc=3
        Message.data=[0x11]
   try:
        bus.send(Message);
        print ("Data=",Message.data)
        print ("ID=",id)
   except:
        print ("Oops!!! Something went wrong!")
Exemplo n.º 18
0
import sys,signal,can
from PyQt5 import QtGui, QtCore, QtWidgets
from can.interfaces.interface import Bus

#200 -> 4,5 == speed 6,7 == ?

device = sys.argv[1]

can.rc['interface'] = 'socketcan_ctypes'
can.rc['channel'] = device
bus = Bus()
 
class Main(QtWidgets.QWidget):
 
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
     
        self.timer = QtCore.QTimer(self)
        self.timer.timeout.connect(self.CAN)
        self.timer.start(1) 
 
        self.lcd = QtWidgets.QLCDNumber(self)
        #set widget size
        self.lcd.setFixedSize(500,200)
        self.lcd.display(0)

        self.setGeometry(50,50,500,200)
        self.setWindowTitle("Speedometer")
Exemplo n.º 19
0
import log_utils
from timeit import default_timer
import sys
import can
from can.interfaces.interface import Bus

#python3 send_from_log.py [device name] [logfile]

can.rc['interface'] = 'socketcan_ctypes'
can.rc['channel'] = 'can0'
bus = Bus()

chan_in = sys.argv[1]
LOGFILE = sys.argv[2]
#ID = int(sys.argv[2])

can.rc['interface'] = 'socketcan_ctypes'
can.rc['channel'] = chan_in
bus = Bus()


def send_message(message):
    soc_message = can.Message(extended_id=False,
                              is_error_frame=False,
                              arbitration_id=message.can_id,
                              data=message.data)
    bus.send(soc_message)


def message_alter(message, altered_bytes):
    for i in range(len(message.data)):
Exemplo n.º 20
0
    description='Simulates CAN bus messages from CCS')
parser.add_argument("--verbose",
                    type=str2bool,
                    nargs='?',
                    const=True,
                    default=False,
                    help="Prints verbose logger messages")
args = parser.parse_args()

# Add verbose logger
if args.verbose:
    logging.basicConfig()
    logging.getLogger('apscheduler').setLevel(logging.DEBUG)

# Init CAN
bus = Bus('can1', bustype='socketcan')

# Pose as CCS and send out some messages
scheduler = BackgroundScheduler()
scheduler.add_job(_send_ccs_rand, 'interval', args=[bus], seconds=1)
scheduler.start()

# Enter blocking loop to keep daemon alive
while True:
    try:
        time.sleep(1)
    except:
        # Gracefully shutdown scheduler
        click.echo(
            click.style('Exception Handled! Killing thread',
                        bg='red',
Exemplo n.º 21
0
 def initializeInstances(self):
     self.bus = Bus(can_interface, can_filters=FILTER_DICTIONARY_LIST)
     self.can_tools = CAN_Opener.Can_Opener()
Exemplo n.º 22
0
def dumpcan():
    global var
    windowid = 0
    for message in Bus(can_interface):
        if var == 1:
            msg = unicode(message).encode('utf-8')
            canid = msg[26:29]
            msg = msg[48:99]
            if canid == ("464"):
                if msg == ("20 02 02 00"):  #Button Up - KODI Up
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Up","id":1}')
                if msg == ("20 02 20 00"):  #Button Down - KODI Down
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Down","id":1}')
                if msg == ("20 02 01 00"):  #Button Left - KODI Left
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Left","id":1}')
                if msg == ("20 02 03 00"):  #Button Right - KODI Right
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Right","id":1}')
                if msg == ("20 02 04 00"):  #Button AS - KODI OK
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Select","id":1}')
                if msg == ("20 02 00 50"):  #Button Return - KODI Back
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Back","id":1}')
                if msg == ("20 02 00 05"):  #Encoder Button Pressed - KODI OK
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Select","id":1}')
                if msg == ("20 01 00 ff"
                           ):  #Right Encoder Rotation to Left - KODI UP
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Up","id":1}')
                if msg == ("20 01 01 ff"
                           ):  #Right Encoder Rotation to Left - KODI Down
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Input.Down","id":1}')
                if msg == ("20 02 00 20"):  #Button - Kodi Up
                    windowid = xbmcgui.getCurrentWindowId()
                    if (windowid == 12006):  # MusicVisualisation.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Player.Seek","params":{"playerid":0,"value":"bigforward"},"id":1}'
                        )
                    elif (windowid == 12005):  # VideoFullScreen.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Player.Seek","params":{"playerid":1,"value":"bigforward"},"id":1}'
                        )
                    else:
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Input.Up","id":1}')
                if msg == ("20 02 00 01"):  #Button + KODI -
                    windowid = xbmcgui.getCurrentWindowId()
                    if (windowid == 12006):  # MusicVisualisation.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Player.Seek","params":{"playerid":0,"value":"bigbackward"},"id":1}'
                        )
                    elif (windowid == 12005):  # VideoFullScreen.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Player.Seek","params":{"playerid":1,"value":"bigbackward"},"id":1}'
                        )
                    else:
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Input.Down","id":1}')
                if msg == ("20 02 00 03"):  #Button Mode - KODI Context menu
                    windowid = xbmcgui.getCurrentWindowId()
                    if (windowid == 12006):  # MusicVisualisation.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Input.ShowOSD","id":1}'
                        )
                    elif (windowid == 12005):  # VideoFullScreen.xml
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Input.ShowOSD","id":1}'
                        )
                    else:
                        xbmc.executeJSONRPC(
                            '{"jsonrpc":"2.0","method":"Input.ContextMenu","id":1}'
                        )
                if msg == ("00 02"):  #Stop Player if power OFF
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Player.Stop","params":{"playerid":1},"id":1}'
                    )
            if canid == ("218"):
                if msg == ("01 02"):  #Stop Player if key disable
                    xbmc.executeJSONRPC(
                        '{"jsonrpc":"2.0","method":"Player.Stop","params":{"playerid":1},"id":1}'
                    )
Exemplo n.º 23
0
 def __init__(self):
     self.bus = Bus('can0', bustype='socketcan_ctypes')
     self.rx_buff = []
     self.tx_buff = []
Exemplo n.º 24
0
import time
import can
import sys
from can.interfaces.interface import Bus
can_interface = 'can0'

#
# TODO: keep sending 700/02 3e 80
# 
#

bus = Bus(can_interface)

receivers = []

def hexdump(x):
	return ' '.join("%02x" % y for y in bytearray(x))

class IsoTp:
	PAD = bytes([0x55])
	def __init__(self, bus, id_source, id_target, add_address_info = None):
		global receivers
		self.id_source = id_source
		self.id_target = id_target
		self.add_address_info = add_address_info
		self.bus = bus
		receivers.append(self)
		self.rx_pdu = None
		self.rx_dl = None
		self.rx_exp_sn = None
		self.debug = True
Exemplo n.º 25
0
def pushCan(canId, data):
    bus = Bus(channel=can_interface)
    msg = can.Message(arbitration_id=canId,
                      data=(data).to_bytes(4, byteorder='little'),
                      extended_id=True)
    bus.send(msg)
def main():
    can_interface = 'can1'
    bus = Bus(can_interface)

    attack_choice = showoptions()

    print attack_choice
    print "Attack initiated......"

    try:
        while (1):
            try:
                if attack_choice == '1':
                    changespeed_50()
                    bus.send(Message)

                elif attack_choice == '2':
                    changespeed_100()
                    bus.send(Message)

                elif attack_choice == '3':
                    changespeed_150()
                    bus.send(Message)

                elif attack_choice == '4':
                    changespeed_full()
                    bus.send(Message)

                elif attack_choice == '5':
                    changespeed_randomtrip()

                elif attack_choice == '6':
                    changefuel_full()
                    bus.send(Message)

                elif attack_choice == '7':
                    changefuel_threequarter()
                    bus.send(Message)

                elif attack_choice == '8':
                    changefuel_half()
                    bus.send(Message)

                elif attack_choice == '9':
                    changefuel_quarter()
                    bus.send(Message)

                elif attack_choice == '10':
                    changefuel_emptybeep()
                    bus.send(Message)

                elif attack_choice == '11':
                    open_driverdoor()
                    bus.send(Message)

                elif attack_choice == '12':
                    open_passengerdoor()
                    bus.send(Message)

                elif attack_choice == '13':
                    open_reardoors()
                    bus.send(Message)

                elif attack_choice == '14':
                    open_frontdoors()
                    bus.send(Message)

                elif attack_choice == '15':
                    close_alldoor()
                    bus.send(Message)

                elif attack_choice == '16':
                    highbeam()
                    bus.send(Message)

                elif attack_choice == '17':
                    headlamp()
                    bus.send(Message)

                elif attack_choice == '18':
                    interiorlight()
                    bus.send(Message)

                elif attack_choice == '19':
                    lightsoff()
                    bus.send(Message)

                else:
                    print "Invalid Choice. Please Re-enter correct choice."
                    time.sleep(2)
                    os.system('clear')
                    main()

            except KeyboardInterrupt:
                print "Attack Stopped"
                time.sleep(2)
                os.system('clear')
                main()

            except:
                print "Oops something went wrong!"
                time.sleep(2)
                os.system('clear')
                main()

    except KeyboardInterrupt:
        os.system('clear')
        main()