]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/nova/__init__.py
Merge pull request #688 from caternuson/add_kb2040
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / nova / __init__.py
1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2 #
3 # SPDX-License-Identifier: MIT
4 """Generic Connection class for Binho Nova to keep track of connection"""
5
6
7 class Connection:
8     """Connection class"""
9
10     __instance = None
11
12     @staticmethod
13     def getInstance():
14         """Static access method."""
15         if Connection.__instance is None:
16             Connection()
17         return Connection.__instance
18
19     def __init__(self):
20         """Virtually private constructor."""
21         if Connection.__instance is not None:
22             raise Exception("This class is a singleton!")
23
24         # pylint: disable=import-outside-toplevel
25         from binhoHostAdapter import binhoHostAdapter
26         from binhoHostAdapter import binhoUtilities
27
28         # pylint: enable=import-outside-toplevel
29         devices = binhoUtilities.listAvailableDevices()
30
31         if len(devices) > 0:
32             Connection.__instance = binhoHostAdapter.binhoHostAdapter(devices[0])
33         else:
34             raise RuntimeError("No Binho Nova found!")