-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNetworkTableManager.py
30 lines (25 loc) · 1.11 KB
/
NetworkTableManager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from networktables import NetworkTables
from PySide6.QtCore import Signal, QObject
import time
class NetworkTableManager(QObject):
new_value_available = Signal(tuple)
def __init__(self, tableName, entryName, parent = None):
super().__init__(parent)
NetworkTables.initialize(server='10.1.92.2') #Robot IP
#NetworkTables.initialize(server='localhost') #Local IP for Simulation
print("Connecting to " + tableName + "-> " + entryName + ":")
while not NetworkTables.isConnected():
print("#", end="")
time.sleep(0.2)
print("Connected!")
self.tableName = tableName
self.entryName = entryName
self.table = NetworkTables.getTable(self.tableName)
self.entry = self.table.getEntry(self.entryName)
self.entry.addListener(self.valueChanged, NetworkTables.NotifyFlags.UPDATE)
def valueChanged(self, table, key, value, isNew):
self.new_value_available.emit(value)
def getValue(self):
return self.table.getValue(self.entryName, None)
def putString(self, value):
self.entry.setString(value)