Skip to content

Commit 1a995e7

Browse files
felixdivomergify-bot
authored and
mergify-bot
committed
Remove wildcard import; move some dicts/lists to basic.py
1 parent 9c15fa0 commit 1a995e7

File tree

2 files changed

+144
-101
lines changed

2 files changed

+144
-101
lines changed

can/interfaces/pcan/basic.py

+96
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,102 @@ class TPCANChannelInformation(Structure):
548548
] # Availability status of a PCAN-Channel
549549

550550

551+
# ///////////////////////////////////////////////////////////
552+
# Additional objects
553+
# ///////////////////////////////////////////////////////////
554+
555+
PCAN_BITRATES = {
556+
1000000: PCAN_BAUD_1M,
557+
800000: PCAN_BAUD_800K,
558+
500000: PCAN_BAUD_500K,
559+
250000: PCAN_BAUD_250K,
560+
125000: PCAN_BAUD_125K,
561+
100000: PCAN_BAUD_100K,
562+
95000: PCAN_BAUD_95K,
563+
83000: PCAN_BAUD_83K,
564+
50000: PCAN_BAUD_50K,
565+
47000: PCAN_BAUD_47K,
566+
33000: PCAN_BAUD_33K,
567+
20000: PCAN_BAUD_20K,
568+
10000: PCAN_BAUD_10K,
569+
5000: PCAN_BAUD_5K,
570+
}
571+
572+
PCAN_FD_PARAMETER_LIST = (
573+
"nom_brp",
574+
"nom_tseg1",
575+
"nom_tseg2",
576+
"nom_sjw",
577+
"data_brp",
578+
"data_tseg1",
579+
"data_tseg2",
580+
"data_sjw",
581+
)
582+
583+
PCAN_CHANNEL_NAMES = {
584+
"PCAN_NONEBUS": PCAN_NONEBUS,
585+
"PCAN_ISABUS1": PCAN_ISABUS1,
586+
"PCAN_ISABUS2": PCAN_ISABUS2,
587+
"PCAN_ISABUS3": PCAN_ISABUS3,
588+
"PCAN_ISABUS4": PCAN_ISABUS4,
589+
"PCAN_ISABUS5": PCAN_ISABUS5,
590+
"PCAN_ISABUS6": PCAN_ISABUS6,
591+
"PCAN_ISABUS7": PCAN_ISABUS7,
592+
"PCAN_ISABUS8": PCAN_ISABUS8,
593+
"PCAN_DNGBUS1": PCAN_DNGBUS1,
594+
"PCAN_PCIBUS1": PCAN_PCIBUS1,
595+
"PCAN_PCIBUS2": PCAN_PCIBUS2,
596+
"PCAN_PCIBUS3": PCAN_PCIBUS3,
597+
"PCAN_PCIBUS4": PCAN_PCIBUS4,
598+
"PCAN_PCIBUS5": PCAN_PCIBUS5,
599+
"PCAN_PCIBUS6": PCAN_PCIBUS6,
600+
"PCAN_PCIBUS7": PCAN_PCIBUS7,
601+
"PCAN_PCIBUS8": PCAN_PCIBUS8,
602+
"PCAN_PCIBUS9": PCAN_PCIBUS9,
603+
"PCAN_PCIBUS10": PCAN_PCIBUS10,
604+
"PCAN_PCIBUS11": PCAN_PCIBUS11,
605+
"PCAN_PCIBUS12": PCAN_PCIBUS12,
606+
"PCAN_PCIBUS13": PCAN_PCIBUS13,
607+
"PCAN_PCIBUS14": PCAN_PCIBUS14,
608+
"PCAN_PCIBUS15": PCAN_PCIBUS15,
609+
"PCAN_PCIBUS16": PCAN_PCIBUS16,
610+
"PCAN_USBBUS1": PCAN_USBBUS1,
611+
"PCAN_USBBUS2": PCAN_USBBUS2,
612+
"PCAN_USBBUS3": PCAN_USBBUS3,
613+
"PCAN_USBBUS4": PCAN_USBBUS4,
614+
"PCAN_USBBUS5": PCAN_USBBUS5,
615+
"PCAN_USBBUS6": PCAN_USBBUS6,
616+
"PCAN_USBBUS7": PCAN_USBBUS7,
617+
"PCAN_USBBUS8": PCAN_USBBUS8,
618+
"PCAN_USBBUS9": PCAN_USBBUS9,
619+
"PCAN_USBBUS10": PCAN_USBBUS10,
620+
"PCAN_USBBUS11": PCAN_USBBUS11,
621+
"PCAN_USBBUS12": PCAN_USBBUS12,
622+
"PCAN_USBBUS13": PCAN_USBBUS13,
623+
"PCAN_USBBUS14": PCAN_USBBUS14,
624+
"PCAN_USBBUS15": PCAN_USBBUS15,
625+
"PCAN_USBBUS16": PCAN_USBBUS16,
626+
"PCAN_PCCBUS1": PCAN_PCCBUS1,
627+
"PCAN_PCCBUS2": PCAN_PCCBUS2,
628+
"PCAN_LANBUS1": PCAN_LANBUS1,
629+
"PCAN_LANBUS2": PCAN_LANBUS2,
630+
"PCAN_LANBUS3": PCAN_LANBUS3,
631+
"PCAN_LANBUS4": PCAN_LANBUS4,
632+
"PCAN_LANBUS5": PCAN_LANBUS5,
633+
"PCAN_LANBUS6": PCAN_LANBUS6,
634+
"PCAN_LANBUS7": PCAN_LANBUS7,
635+
"PCAN_LANBUS8": PCAN_LANBUS8,
636+
"PCAN_LANBUS9": PCAN_LANBUS9,
637+
"PCAN_LANBUS10": PCAN_LANBUS10,
638+
"PCAN_LANBUS11": PCAN_LANBUS11,
639+
"PCAN_LANBUS12": PCAN_LANBUS12,
640+
"PCAN_LANBUS13": PCAN_LANBUS13,
641+
"PCAN_LANBUS14": PCAN_LANBUS14,
642+
"PCAN_LANBUS15": PCAN_LANBUS15,
643+
"PCAN_LANBUS16": PCAN_LANBUS16,
644+
}
645+
646+
551647
# ///////////////////////////////////////////////////////////
552648
# PCAN-Basic API function declarations
553649
# ///////////////////////////////////////////////////////////

can/interfaces/pcan/pcan.py

+48-101
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
Enable basic CAN over a PCAN USB device.
33
"""
44

5-
from .basic import * # Do this first since the wildcard imports a lot
6-
75
import logging
86
import time
97
from datetime import datetime
8+
import platform
109

1110
from typing import Optional
1211

@@ -16,6 +15,46 @@
1615
from ...exceptions import CanError, CanOperationError, CanInitializationError
1716

1817

18+
from .basic import (
19+
PCAN_BITRATES,
20+
PCAN_FD_PARAMETER_LIST,
21+
PCAN_CHANNEL_NAMES,
22+
PCAN_BAUD_500K,
23+
PCAN_TYPE_ISA,
24+
PCANBasic,
25+
PCAN_ERROR_OK,
26+
PCAN_ALLOW_ERROR_FRAMES,
27+
PCAN_PARAMETER_ON,
28+
PCAN_RECEIVE_EVENT,
29+
PCAN_DEVICE_NUMBER,
30+
PCAN_ERROR_QRCVEMPTY,
31+
PCAN_ERROR_BUSLIGHT,
32+
PCAN_ERROR_BUSHEAVY,
33+
PCAN_MESSAGE_EXTENDED,
34+
PCAN_MESSAGE_RTR,
35+
PCAN_MESSAGE_FD,
36+
PCAN_MESSAGE_BRS,
37+
PCAN_MESSAGE_ESI,
38+
PCAN_MESSAGE_ERRFRAME,
39+
PCAN_MESSAGE_STANDARD,
40+
TPCANMsgFD,
41+
TPCANMsg,
42+
PCAN_CHANNEL_IDENTIFYING,
43+
PCAN_LISTEN_ONLY,
44+
PCAN_PARAMETER_OFF,
45+
TPCANHandle,
46+
PCAN_PCIBUS1,
47+
PCAN_USBBUS1,
48+
PCAN_PCCBUS1,
49+
PCAN_LANBUS1,
50+
PCAN_CHANNEL_CONDITION,
51+
PCAN_CHANNEL_AVAILABLE,
52+
PCAN_CHANNEL_FEATURES,
53+
FEATURE_FD_CAPABLE,
54+
PCAN_DICT_STATUS,
55+
)
56+
57+
1958
# Set up logging
2059
log = logging.getLogger("can.pcan")
2160

@@ -54,99 +93,6 @@
5493
HAS_EVENTS = False
5594

5695

57-
pcan_bitrate_objs = {
58-
1000000: PCAN_BAUD_1M,
59-
800000: PCAN_BAUD_800K,
60-
500000: PCAN_BAUD_500K,
61-
250000: PCAN_BAUD_250K,
62-
125000: PCAN_BAUD_125K,
63-
100000: PCAN_BAUD_100K,
64-
95000: PCAN_BAUD_95K,
65-
83000: PCAN_BAUD_83K,
66-
50000: PCAN_BAUD_50K,
67-
47000: PCAN_BAUD_47K,
68-
33000: PCAN_BAUD_33K,
69-
20000: PCAN_BAUD_20K,
70-
10000: PCAN_BAUD_10K,
71-
5000: PCAN_BAUD_5K,
72-
}
73-
74-
75-
pcan_fd_parameter_list = [
76-
"nom_brp",
77-
"nom_tseg1",
78-
"nom_tseg2",
79-
"nom_sjw",
80-
"data_brp",
81-
"data_tseg1",
82-
"data_tseg2",
83-
"data_sjw",
84-
]
85-
86-
pcan_channel_names = {
87-
"PCAN_NONEBUS": PCAN_NONEBUS,
88-
"PCAN_ISABUS1": PCAN_ISABUS1,
89-
"PCAN_ISABUS2": PCAN_ISABUS2,
90-
"PCAN_ISABUS3": PCAN_ISABUS3,
91-
"PCAN_ISABUS4": PCAN_ISABUS4,
92-
"PCAN_ISABUS5": PCAN_ISABUS5,
93-
"PCAN_ISABUS6": PCAN_ISABUS6,
94-
"PCAN_ISABUS7": PCAN_ISABUS7,
95-
"PCAN_ISABUS8": PCAN_ISABUS8,
96-
"PCAN_DNGBUS1": PCAN_DNGBUS1,
97-
"PCAN_PCIBUS1": PCAN_PCIBUS1,
98-
"PCAN_PCIBUS2": PCAN_PCIBUS2,
99-
"PCAN_PCIBUS3": PCAN_PCIBUS3,
100-
"PCAN_PCIBUS4": PCAN_PCIBUS4,
101-
"PCAN_PCIBUS5": PCAN_PCIBUS5,
102-
"PCAN_PCIBUS6": PCAN_PCIBUS6,
103-
"PCAN_PCIBUS7": PCAN_PCIBUS7,
104-
"PCAN_PCIBUS8": PCAN_PCIBUS8,
105-
"PCAN_PCIBUS9": PCAN_PCIBUS9,
106-
"PCAN_PCIBUS10": PCAN_PCIBUS10,
107-
"PCAN_PCIBUS11": PCAN_PCIBUS11,
108-
"PCAN_PCIBUS12": PCAN_PCIBUS12,
109-
"PCAN_PCIBUS13": PCAN_PCIBUS13,
110-
"PCAN_PCIBUS14": PCAN_PCIBUS14,
111-
"PCAN_PCIBUS15": PCAN_PCIBUS15,
112-
"PCAN_PCIBUS16": PCAN_PCIBUS16,
113-
"PCAN_USBBUS1": PCAN_USBBUS1,
114-
"PCAN_USBBUS2": PCAN_USBBUS2,
115-
"PCAN_USBBUS3": PCAN_USBBUS3,
116-
"PCAN_USBBUS4": PCAN_USBBUS4,
117-
"PCAN_USBBUS5": PCAN_USBBUS5,
118-
"PCAN_USBBUS6": PCAN_USBBUS6,
119-
"PCAN_USBBUS7": PCAN_USBBUS7,
120-
"PCAN_USBBUS8": PCAN_USBBUS8,
121-
"PCAN_USBBUS9": PCAN_USBBUS9,
122-
"PCAN_USBBUS10": PCAN_USBBUS10,
123-
"PCAN_USBBUS11": PCAN_USBBUS11,
124-
"PCAN_USBBUS12": PCAN_USBBUS12,
125-
"PCAN_USBBUS13": PCAN_USBBUS13,
126-
"PCAN_USBBUS14": PCAN_USBBUS14,
127-
"PCAN_USBBUS15": PCAN_USBBUS15,
128-
"PCAN_USBBUS16": PCAN_USBBUS16,
129-
"PCAN_PCCBUS1": PCAN_PCCBUS1,
130-
"PCAN_PCCBUS2": PCAN_PCCBUS2,
131-
"PCAN_LANBUS1": PCAN_LANBUS1,
132-
"PCAN_LANBUS2": PCAN_LANBUS2,
133-
"PCAN_LANBUS3": PCAN_LANBUS3,
134-
"PCAN_LANBUS4": PCAN_LANBUS4,
135-
"PCAN_LANBUS5": PCAN_LANBUS5,
136-
"PCAN_LANBUS6": PCAN_LANBUS6,
137-
"PCAN_LANBUS7": PCAN_LANBUS7,
138-
"PCAN_LANBUS8": PCAN_LANBUS8,
139-
"PCAN_LANBUS9": PCAN_LANBUS9,
140-
"PCAN_LANBUS10": PCAN_LANBUS10,
141-
"PCAN_LANBUS11": PCAN_LANBUS11,
142-
"PCAN_LANBUS12": PCAN_LANBUS12,
143-
"PCAN_LANBUS13": PCAN_LANBUS13,
144-
"PCAN_LANBUS14": PCAN_LANBUS14,
145-
"PCAN_LANBUS15": PCAN_LANBUS15,
146-
"PCAN_LANBUS16": PCAN_LANBUS16,
147-
}
148-
149-
15096
class PcanBus(BusABC):
15197
def __init__(
15298
self,
@@ -248,14 +194,14 @@ def __init__(
248194
"""
249195
self.channel_info = str(channel)
250196
self.fd = kwargs.get("fd", False)
251-
pcan_bitrate = pcan_bitrate_objs.get(bitrate, PCAN_BAUD_500K)
197+
pcan_bitrate = PCAN_BITRATES.get(bitrate, PCAN_BAUD_500K)
252198

253199
hwtype = PCAN_TYPE_ISA
254200
ioport = 0x02A0
255201
interrupt = 11
256202

257203
if not isinstance(channel, int):
258-
channel = pcan_channel_names[channel]
204+
channel = PCAN_CHANNEL_NAMES[channel]
259205

260206
self.m_objPCANBasic = PCANBasic()
261207
self.m_PcanHandle = channel
@@ -274,7 +220,7 @@ def __init__(
274220

275221
fd_parameters_values = [f_clock] + [
276222
"{}={}".format(key, kwargs.get(key, None))
277-
for key in pcan_fd_parameter_list
223+
for key in PCAN_FD_PARAMETER_LIST
278224
if kwargs.get(key, None) is not None
279225
]
280226

@@ -651,11 +597,12 @@ def _detect_available_configs():
651597
def status_string(self) -> Optional[str]:
652598
"""
653599
Query the PCAN bus status.
654-
:return: The status in string.
600+
601+
:return: The status description, if any was found.
655602
"""
656-
if self.status() in PCAN_DICT_STATUS:
603+
try:
657604
return PCAN_DICT_STATUS[self.status()]
658-
else:
605+
except KeyError:
659606
return None
660607

661608

0 commit comments

Comments
 (0)