def builtin_bus_factory(): cs = DigitalInOut(board.D5) cs.switch_to_output() return CAN(board.SPI(), cs, baudrate=1000000, loopback=True, silent=True)
def builtin_bus_factory(): return CAN(rx=CAN_RX, tx=CAN_TX, baudrate=1000000, loopback=True)
def bus(): cs = DigitalInOut(CS_PIN) cs.switch_to_output() return CAN(SPI(), cs, loopback=True, silent=True)
# SPDX-FileCopyrightText: Copyright (c) 2020 Bryan Siepert for Adafruit Industries # # SPDX-License-Identifier: MIT from time import sleep import board import busio from digitalio import DigitalInOut from adafruit_mcp2515.canio import Message, RemoteTransmissionRequest from adafruit_mcp2515 import MCP2515 as CAN cs = DigitalInOut(board.D5) cs.switch_to_output() spi = busio.SPI(board.SCK, board.MOSI, board.MISO) can_bus = CAN(spi, cs, loopback=True, silent=True) # use loopback to test without another device while True: with can_bus.listen(timeout=1.0) as listener: message = Message(id=0x1234ABCD, data=b"adafruit", extended=True) send_success = can_bus.send(message) print("Send success:", send_success) message_count = listener.in_waiting() print(message_count, "messages available") for _i in range(message_count): msg = listener.receive() print("Message from ", hex(msg.id)) if isinstance(msg, Message): print("message data:", msg.data) if isinstance(msg, RemoteTransmissionRequest): print("RTR length:", msg.length)
# SPDX-FileCopyrightText: Copyright (c) 2020 Bryan Siepert for Adafruit Industries # # SPDX-License-Identifier: MIT import board import busio from digitalio import DigitalInOut from adafruit_mcp2515.canio import Message, RemoteTransmissionRequest from adafruit_mcp2515 import MCP2515 as CAN NODE_ID = 0x1234ABCD cs = DigitalInOut(board.D5) cs.switch_to_output() spi = busio.SPI(board.SCK, board.MOSI, board.MISO) can_bus = CAN(spi, cs) while True: with can_bus.listen(timeout=1.0) as listener: message = Message(id=NODE_ID, data=b"adafruit", extended=True) send_success = can_bus.send(message) print("Send success:", send_success) message_count = listener.in_waiting() if message_count == 0: continue print(message_count, "messages available") for _i in range(message_count): msg = listener.receive() print("Message from ", hex(msg.id), "extended:", msg.extended) if isinstance(msg, Message): print("message data:", msg.data)
# SPDX-FileCopyrightText: Copyright (c) 2020 Bryan Siepert for Adafruit Industries # # SPDX-License-Identifier: MIT import digitalio import board import busio from adafruit_mcp2515.canio import Timer from adafruit_mcp2515.canio import RemoteTransmissionRequest, Message from adafruit_mcp2515 import MCP2515 as CAN cs = digitalio.DigitalInOut(board.D5) cs.switch_to_output() spi = busio.SPI(board.SCK, board.MOSI, board.MISO) mcp = CAN(spi, cs, silent=True) t = Timer(timeout=5) next_message = None message_num = 0 while True: # print occationally to show we're alive if t.expired: print(".", end="") t.rewind_to(1) with mcp.listen(timeout=1.0) as listener: message_count = listener.in_waiting() if message_count == 0: continue next_message = listener.receive()