Skip to content

please #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 70 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 60 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
8479950
python is very very bad I hate it
Microsh1t Sep 14, 2023
396d6b7
Update README.md
Microsh1t Sep 14, 2023
1b45648
Update to LoggerGui.ui
Microsh1t Nov 15, 2023
fdf36d7
Update to LoggerGUI.py
Microsh1t Nov 15, 2023
fea7832
uploaded new files
Microsh1t Nov 15, 2023
48ced81
fixed bug: crashing when trying to save a file
Microsh1t Nov 15, 2023
d3a0a07
fixed bug: crashing when trying to save a file
Microsh1t Nov 15, 2023
648423a
new line
Microsh1t Nov 15, 2023
e987f83
new line
Microsh1t Nov 16, 2023
5d7a445
new file dialog for log store location
Microsh1t Nov 22, 2023
18547fc
new file dialog for log store location
Microsh1t Nov 22, 2023
0fc7037
better file dialog for log store location
Microsh1t Nov 24, 2023
e9d83d4
uploaded the .ui file for QT GUIs
Microsh1t Nov 24, 2023
dfbc011
fixed crash when specifically Windows sucks
Microsh1t Nov 27, 2023
a17a6bb
fixed crash when specifically Windows sucks fr fr no cap
Microsh1t Nov 28, 2023
fe64c51
fixed crash when specifically Windows sucks fr fr this time no cap
Microsh1t Nov 28, 2023
8639fb5
fixed crash when specifically Windows sucks fr fr this time no cap I …
Microsh1t Nov 28, 2023
fc7e9e8
fixed path saving for windows loosers
Microsh1t Nov 28, 2023
ca45eaf
fixed path saving for windows loosers fr this time
Microsh1t Nov 28, 2023
81de5c1
added owr awesome new logo (created in GIMP)
Microsh1t Nov 28, 2023
4302e39
added a source directory called src
Microsh1t Nov 28, 2023
888e079
Merge pull request #1 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Nov 28, 2023
561e347
it's been so long
Microsh1t Dec 17, 2023
d6f4fe2
updated readme with the build command
Microsh1t Dec 17, 2023
6ddc144
cleaned
Microsh1t Dec 18, 2023
9102616
cleaned 2
Microsh1t Dec 18, 2023
003750c
updated build command to include crappy (not) operating systems
Microsh1t Dec 18, 2023
fe4920c
Merge pull request #2 from Spikes-2212-Programming-Guild/dev
Microsh1t Dec 18, 2023
609603f
Merge pull request #3 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Dec 18, 2023
5dcb51c
fixed bug: infinite loop when saving a file
Microsh1t Dec 21, 2023
ba9cd3f
Merge remote-tracking branch 'origin/tzintzenet-dev' into tzintzenet-dev
Microsh1t Dec 21, 2023
4b11f3a
added an update button to update the app
Microsh1t Dec 21, 2023
64fc1cb
updated the text for the default gui before log
Microsh1t Dec 21, 2023
8940e1e
updated the md file to include pyuic6
Microsh1t Dec 25, 2023
d457a04
now when saving log gui shows the default text again
Microsh1t Dec 25, 2023
d31c335
added about "dialog"
Microsh1t Dec 25, 2023
70e95ed
added about "dialog" 2
Microsh1t Dec 25, 2023
b4e872d
added source code option
Microsh1t Dec 25, 2023
06ba736
added new lines (because python)
Microsh1t Dec 25, 2023
629c48d
removed imports
Microsh1t Dec 25, 2023
a0a1cda
changed the console new line to the end of the line (instead of the s…
Microsh1t Dec 25, 2023
7804185
added auto scrolling & indicator
Microsh1t Dec 25, 2023
461e995
removed stupid
Microsh1t Dec 25, 2023
3a43510
Merge pull request #4 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Dec 25, 2023
41ea221
added instructions is settings
Microsh1t Dec 28, 2023
f301162
Merge pull request #5 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Dec 28, 2023
6ef6e4d
added icon
Microsh1t Dec 28, 2023
7a6cc40
Merge pull request #6 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Dec 28, 2023
afc5762
updated build command for inferior (not) operating systems
Microsh1t Dec 30, 2023
7ed9571
sadly python convention
Microsh1t Dec 30, 2023
a48eca8
awesome README.md update!!!11!!1!
Microsh1t Jan 3, 2024
1e82a0a
added Screenshot1.png because
Microsh1t Jan 3, 2024
ef36be9
Merge pull request #7 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Jan 3, 2024
69bb339
added note for Mr Borito's default value
Microsh1t Jan 3, 2024
7a223e9
Merge pull request #8 from Spikes-2212-Programming-Guild/dev
Microsh1t Jan 3, 2024
660c81b
added credits + GIMP files
Microsh1t Jan 3, 2024
7177836
Merge remote-tracking branch 'origin/tzintzenet-dev' into tzintzenet-dev
Microsh1t Jan 3, 2024
ef4970d
update to logging values in README.md
Microsh1t Jan 3, 2024
5e0b1ee
update 2 to logging values in README.md
Microsh1t Jan 3, 2024
c51a456
Merge pull request #9 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Jan 9, 2024
fabc09d
hello
Jan 11, 2024
2cea245
Merge pull request #11 from Spikes-2212-Programming-Guild/tzintzenet-dev
Microsh1t Jan 11, 2024
edc6aff
updated the readme
Jan 19, 2024
763128d
added a print for easy debugging
Jan 19, 2024
423c0b7
added a warning for Windows losers
Jan 19, 2024
a8e7630
edited a comment
Jan 19, 2024
6c4192e
fixed bug when saving log files with a name that already exists & del…
Jan 19, 2024
f647812
added a clarification to the readme
Jan 19, 2024
eb949a8
conventions & fixes to things that conventions broke because python
Jan 20, 2024
2586f1c
:(
Jan 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified LICENSE
100644 → 100755
Empty file.
73 changes: 72 additions & 1 deletion README.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1 +1,72 @@
# SpikesLogger
## Warning!
### [python sucks](https://gitlab.com/TzintzeneT/dont-use-python), do not use python at home.

# SpikesLogger
![SpikesLogger screenshot](images/Screenshot1.png "Awesome app")

Welcome to the SpikesLogger official repo!
this app is the desktop part of the SpikesLogger real-time FRC logger.
The SpikesLogger uses the NetworkTables server on the (holy) roborio to log values from the robot to your computer.

You can download the latest release from [here](https://github.com/Spikes-2212-Programming-Guild/SpikesLogger/releases), or build it yourself with the commands below.
the SpikesLogger is designed to replace the "System.out.println()" you do every time you want to log some value when you run your code.
it is meant to be used for debugging but feel free to use it as you want.

# logging values
1. _FIRST_, set the "server IP" in the app settings to your roborio's ip,
and make sure you are connected to the robot's router.
2. _SECOND_, to log the values from your robot, you can use a couple of methods.

**note:** make sure to not log the temp value in the app settings, otherwise it will not be logged.
if for some odd reason you want to log "SeaOttersAreSoFuckingCuteINeedThemInMyRoomRightNow",
you can change it to a different value.

### using SpikesLib2
you can [install SpikesLib2](https://github.com/Spikes-2212-Programming-Guild/SpikesLib2#installation)
and use the built-in SpikesLogger using
```
SpikesLogger sl = new SpikesLogger();
sl.log(value);
```


### Putting values in to the NetworkTables
Although not recommended, you can put the values that you want to log at a certain location in the NetworkTables, for example: SpikesLogger/output.
After that, you need to put in the app settings the NetworkTables location at the "Logger Location" and hit apply.
Also **make sure** to not update the value periodically unless you want to log that same value periodically.

this method is not recommended because you can accidentally put the value in the wrong place,
or do other stupid things you won't notice and will drive you insane.


### Creating your own robot logger
You can create your own robot logger in your preferred language (Java/C++/Python) to use with this desktop app.
you can take a look at the SpikesLogger class in SpikesLib2 for inspiration or just create one from scratch.
To do that, you'll need to make sure you are putting all of the values at the same location at the NetworkTables,
and you also need to put in the desktop app settings the "Logger Location" as that NetworkTables location.


# build commands:
### for linux:
```commandline
pyinstaller --onefile --add-data "SpikesLoggerSmallLogo.png:." SpikesLogger.py
```
### for windows and mac:
```commandline
pyinstaller --onefile --windowed --icon=SpikesLoggerIcon.ico --add-data "SpikesLoggerSmallLogo.png:." SpikesLogger.py
```

## convert the .ui GUI file to Python
```commandline
pyuic6 LoggerGUI.ui -o LoggerGUI.py
```

## created using pain and FOSS
This app is licensed under the awesome GPLv3 licence, and written in Python (unfortunately).

### other projects making this app possible:
- QT (PyQt6)
- RobotPy (PyNetworkTables)
- pyinstaller (Compiling this shit)
- GIMP (logo design)
- PyCharm (because VSCode is broken and PyCharm is awesome unlike python)
Binary file added images/Screenshot1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/SpikesLoggerLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/SpikesLoggerLogo.xcf
Binary file not shown.
26 changes: 26 additions & 0 deletions src/EditConfig.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import json


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe create settings class?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python OOP? POOP?

def applyChanges(ip, save_location, logger_nt_location, temp_value):
conf_data = {
"logger-nt-location": logger_nt_location,
"save-location": save_location,
"serverip": ip,
"temp-value": temp_value
}
with open('../SpikesLog.conf', 'w') as file:
json.dump(conf_data, file)


def getData():
try:
with open('../SpikesLog.conf', 'r') as json_file:
conf_data = json.load(json_file)
except:
conf_data = {
"logger-nt-location": "SpikesLogger/output",
"save-location": "logs",
"serverip": "255.255.255.255",
"temp-value": "SeaOttersAreSoFuckingCuteINeedThemInMyRoomRightNow" # Thanks to Mr Borito our beloved alumn/mentor who went to FIRST service year
}
return conf_data
196 changes: 196 additions & 0 deletions src/LoggerGUI.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# Form implementation generated from reading ui file 'LoggerGUI.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_SpikesLoggerGuiWindow(object):
def setupUi(self, SpikesLoggerGuiWindow):
SpikesLoggerGuiWindow.setObjectName("SpikesLoggerGuiWindow")
SpikesLoggerGuiWindow.resize(844, 719)
self.centralwidget = QtWidgets.QWidget(parent=SpikesLoggerGuiWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.tabWidget = QtWidgets.QTabWidget(parent=self.centralwidget)
self.tabWidget.setObjectName("tabWidget")
self.logsTab = QtWidgets.QWidget()
self.logsTab.setObjectName("logsTab")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.logsTab)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.scrollArea = QtWidgets.QScrollArea(parent=self.logsTab)
self.scrollArea.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.scrollArea.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustIgnored)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setAlignment(QtCore.Qt.AlignmentFlag.AlignBottom|QtCore.Qt.AlignmentFlag.AlignJustify)
self.scrollArea.setObjectName("scrollArea")
self.ConsoleScrollArea = QtWidgets.QWidget()
self.ConsoleScrollArea.setGeometry(QtCore.QRect(0, 0, 802, 538))
self.ConsoleScrollArea.setObjectName("ConsoleScrollArea")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.ConsoleScrollArea)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.logsConsole = QtWidgets.QLabel(parent=self.ConsoleScrollArea)
self.logsConsole.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop)
self.logsConsole.setObjectName("logsConsole")
self.horizontalLayout_2.addWidget(self.logsConsole)
self.scrollArea.setWidget(self.ConsoleScrollArea)
self.horizontalLayout_3.addWidget(self.scrollArea)
self.tabWidget.addTab(self.logsTab, "")
self.settingsTab = QtWidgets.QWidget()
self.settingsTab.setObjectName("settingsTab")
self.verticalLayout = QtWidgets.QVBoxLayout(self.settingsTab)
self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint)
self.verticalLayout.setObjectName("verticalLayout")
self.gridLayout_2 = QtWidgets.QGridLayout()
self.gridLayout_2.setObjectName("gridLayout_2")
self.TempValue = QtWidgets.QLineEdit(parent=self.settingsTab)
self.TempValue.setObjectName("TempValue")
self.gridLayout_2.addWidget(self.TempValue, 3, 2, 1, 1)
self.ServerIP = QtWidgets.QLineEdit(parent=self.settingsTab)
self.ServerIP.setObjectName("ServerIP")
self.gridLayout_2.addWidget(self.ServerIP, 2, 2, 1, 1)
self.label_3 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_3.setObjectName("label_3")
self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_4.setObjectName("label_4")
self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
self.networkTablesLoggerLocation = QtWidgets.QLineEdit(parent=self.settingsTab)
self.networkTablesLoggerLocation.setInputMask("")
self.networkTablesLoggerLocation.setObjectName("networkTablesLoggerLocation")
self.gridLayout_2.addWidget(self.networkTablesLoggerLocation, 0, 2, 1, 1)
self.label_5 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_5.setObjectName("label_5")
self.gridLayout_2.addWidget(self.label_5, 3, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_2.setObjectName("label_2")
self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
self.ChooseDirPushButton = QtWidgets.QPushButton(parent=self.settingsTab)
font = QtGui.QFont()
font.setBold(False)
self.ChooseDirPushButton.setFont(font)
self.ChooseDirPushButton.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor))
self.ChooseDirPushButton.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
self.ChooseDirPushButton.setObjectName("ChooseDirPushButton")
self.gridLayout_2.addWidget(self.ChooseDirPushButton, 1, 2, 1, 1)
self.verticalLayout.addLayout(self.gridLayout_2)
self.applyChangesPushButton = QtWidgets.QPushButton(parent=self.settingsTab)
self.applyChangesPushButton.setObjectName("applyChangesPushButton")
self.verticalLayout.addWidget(self.applyChangesPushButton)
self.label_8 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_8.setText("")
self.label_8.setObjectName("label_8")
self.verticalLayout.addWidget(self.label_8)
self.label_6 = QtWidgets.QLabel(parent=self.settingsTab)
font = QtGui.QFont()
font.setPointSize(20)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.verticalLayout.addWidget(self.label_6)
self.label_7 = QtWidgets.QLabel(parent=self.settingsTab)
self.label_7.setWordWrap(True)
self.label_7.setObjectName("label_7")
self.verticalLayout.addWidget(self.label_7)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.tabWidget.addTab(self.settingsTab, "")
self.gridLayout.addWidget(self.tabWidget, 9, 0, 1, 2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.StartPushButton = QtWidgets.QPushButton(parent=self.centralwidget)
self.StartPushButton.setObjectName("StartPushButton")
self.horizontalLayout.addWidget(self.StartPushButton)
self.PausePushButton = QtWidgets.QPushButton(parent=self.centralwidget)
self.PausePushButton.setObjectName("PausePushButton")
self.horizontalLayout.addWidget(self.PausePushButton)
self.SaveAndStopPushButton = QtWidgets.QPushButton(parent=self.centralwidget)
self.SaveAndStopPushButton.setAutoDefault(False)
self.SaveAndStopPushButton.setObjectName("SaveAndStopPushButton")
self.horizontalLayout.addWidget(self.SaveAndStopPushButton)
self.gridLayout.addLayout(self.horizontalLayout, 11, 0, 1, 2)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_4.addItem(spacerItem1)
self.label = QtWidgets.QLabel(parent=self.centralwidget)
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.label.setObjectName("label")
self.horizontalLayout_4.addWidget(self.label)
self.StatusLable = QtWidgets.QLabel(parent=self.centralwidget)
font = QtGui.QFont()
font.setPointSize(14)
self.StatusLable.setFont(font)
self.StatusLable.setObjectName("StatusLable")
self.horizontalLayout_4.addWidget(self.StatusLable)
self.gridLayout.addLayout(self.horizontalLayout_4, 0, 1, 1, 1)
SpikesLoggerGuiWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=SpikesLoggerGuiWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 844, 23))
self.menubar.setObjectName("menubar")
self.menuSpikesLogger = QtWidgets.QMenu(parent=self.menubar)
self.menuSpikesLogger.setObjectName("menuSpikesLogger")
self.menuHelp = QtWidgets.QMenu(parent=self.menubar)
self.menuHelp.setObjectName("menuHelp")
SpikesLoggerGuiWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=SpikesLoggerGuiWindow)
self.statusbar.setObjectName("statusbar")
SpikesLoggerGuiWindow.setStatusBar(self.statusbar)
self.actionOpen_file = QtGui.QAction(parent=SpikesLoggerGuiWindow)
self.actionOpen_file.setObjectName("actionOpen_file")
self.actionCreate_new_log = QtGui.QAction(parent=SpikesLoggerGuiWindow)
self.actionCreate_new_log.setObjectName("actionCreate_new_log")
self.actionAbout = QtGui.QAction(parent=SpikesLoggerGuiWindow)
self.actionAbout.setObjectName("actionAbout")
self.actionUpdate = QtGui.QAction(parent=SpikesLoggerGuiWindow)
self.actionUpdate.setObjectName("actionUpdate")
self.actionSource_code = QtGui.QAction(parent=SpikesLoggerGuiWindow)
self.actionSource_code.setObjectName("actionSource_code")
self.menuSpikesLogger.addAction(self.actionUpdate)
self.menuSpikesLogger.addSeparator()
self.menuSpikesLogger.addAction(self.actionSource_code)
self.menuSpikesLogger.addSeparator()
self.menuHelp.addAction(self.actionAbout)
self.menubar.addAction(self.menuSpikesLogger.menuAction())
self.menubar.addAction(self.menuHelp.menuAction())

self.retranslateUi(SpikesLoggerGuiWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(SpikesLoggerGuiWindow)

def retranslateUi(self, SpikesLoggerGuiWindow):
_translate = QtCore.QCoreApplication.translate
SpikesLoggerGuiWindow.setWindowTitle(_translate("SpikesLoggerGuiWindow", "Spikes logger"))
self.logsConsole.setText(_translate("SpikesLoggerGuiWindow", "Click start to start logging..."))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.logsTab), _translate("SpikesLoggerGuiWindow", "Logs"))
self.TempValue.setText(_translate("SpikesLoggerGuiWindow", "SeaOttersAreSoFuckingCuteINeedThemInMyRoomRightNow"))
self.ServerIP.setText(_translate("SpikesLoggerGuiWindow", "255.255.255.255"))
self.label_3.setText(_translate("SpikesLoggerGuiWindow", "Logs save location"))
self.label_4.setText(_translate("SpikesLoggerGuiWindow", "Server IP"))
self.networkTablesLoggerLocation.setText(_translate("SpikesLoggerGuiWindow", "SpikesLogger/output"))
self.label_5.setText(_translate("SpikesLoggerGuiWindow", "Temp value"))
self.label_2.setText(_translate("SpikesLoggerGuiWindow", "Logger location"))
self.ChooseDirPushButton.setText(_translate("SpikesLoggerGuiWindow", "/logs"))
self.applyChangesPushButton.setText(_translate("SpikesLoggerGuiWindow", "Apply"))
self.label_6.setText(_translate("SpikesLoggerGuiWindow", "How to use?"))
self.label_7.setText(_translate("SpikesLoggerGuiWindow", "<html><head/><body><p><span style=\" font-style:italic;\">FIRST</span>, make sure you are using a compatible logger on your robot (for example: SpikesLogger from SpikesLib). You can also put the value you want to log at the same location in the networktables as the Logger location in the settings above, although it is not recommended, and you need to make sure to not update the value periodically unless you want to log that same value periodically.</p><p>Enter your roborio IP and choose the location to save the logs to. after that you can start logging by pressing start, pause and save logs. You can change the temp value but make sure to set it to a value that is not likely to be logged.</p><p>To save the settings you can use the apply button.</p></body></html>"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.settingsTab), _translate("SpikesLoggerGuiWindow", "Settings"))
self.StartPushButton.setText(_translate("SpikesLoggerGuiWindow", "Start"))
self.PausePushButton.setText(_translate("SpikesLoggerGuiWindow", "Pause"))
self.SaveAndStopPushButton.setText(_translate("SpikesLoggerGuiWindow", "Stop and save"))
self.label.setText(_translate("SpikesLoggerGuiWindow", "Status:"))
self.StatusLable.setText(_translate("SpikesLoggerGuiWindow", "<font color=\'red\'>off</font>"))
self.menuSpikesLogger.setTitle(_translate("SpikesLoggerGuiWindow", "SpikesLogger"))
self.menuHelp.setTitle(_translate("SpikesLoggerGuiWindow", "Help"))
self.actionOpen_file.setText(_translate("SpikesLoggerGuiWindow", "Open log"))
self.actionCreate_new_log.setText(_translate("SpikesLoggerGuiWindow", "Create new log"))
self.actionAbout.setText(_translate("SpikesLoggerGuiWindow", "About"))
self.actionUpdate.setText(_translate("SpikesLoggerGuiWindow", "Update"))
self.actionSource_code.setText(_translate("SpikesLoggerGuiWindow", "Source code"))
Loading