Skip to content

103 gui performance #106

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

Merged
merged 71 commits into from
May 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
1de426f
Refactor Tiles, WIP
fransjacobs Jan 18, 2025
e198c52
Fix persistance, WIP Commit for the weekend
fransjacobs Jan 19, 2025
fe9aa69
Fix rotating of Block
fransjacobs Jan 20, 2025
8db4c87
More refactoring for Block
fransjacobs Jan 22, 2025
14df7ec
More refactoring, Still issue with Block, it is continuously painting
fransjacobs Jan 24, 2025
4bab147
Slowly restoring the Edit functionality, but now a lot faster
fransjacobs Jan 25, 2025
cbcf078
Cross Tile working again
fransjacobs Jan 26, 2025
c95c95f
More refactoring issue with rotation of Cross
fransjacobs Jan 26, 2025
11edd00
Fix Cross
fja-vtti Jan 27, 2025
7b2ca1d
Tiles can be moved, extra check is needed for Block and Cross WIP
fransjacobs Jan 28, 2025
1cbd14c
Adding tests for checking Tile occupancy in the edit screen
fja-vtti Jan 29, 2025
0a9560e
Fix moving of tile in edit screen
fransjacobs Jan 30, 2025
0b4cff3
Multiple fixes
fransjacobs Jan 30, 2025
93ecce4
Refactored the UI code to make each tile following the MVC pattern.
fransjacobs Feb 7, 2025
80e933d
Cleanup code, minor fix in Crossing
fransjacobs Feb 8, 2025
0f83722
More cleanup
fransjacobs Feb 8, 2025
2f2ca21
The Sensor dispaly is now working again. Clicking on a Sensor will tr…
fransjacobs Feb 9, 2025
461ee52
Restored the control of Switches using the Command screen
fransjacobs Feb 9, 2025
138b012
Fixed draging, added Restored Signal Control
fransjacobs Feb 10, 2025
f499240
Autopilot is working more or less with some issues
fransjacobs Feb 12, 2025
f7ffd04
More refactoring TileFactory and duplicate TileCache removed
fransjacobs Feb 13, 2025
f0de294
Experiment for idle state
fransjacobs Feb 13, 2025
82c018c
Most of the issues are now solved
fransjacobs Feb 19, 2025
dd93284
GUI minor changes
fransjacobs Feb 19, 2025
005eb4a
Work on Markin side. support for mDNS implemented. VNC now works with…
fransjacobs Feb 20, 2025
4d24380
Bring Marklin Implementation inline with the HAL. WIP
fransjacobs Feb 22, 2025
9bc3357
Initial entry for Marklin Virtual CS, some refactoring
fransjacobs Feb 28, 2025
16df4f8
Adding Tests for Marklin Feedback some minor refactoring
fransjacobs Mar 3, 2025
3c4cede
Marklin CS Virtual mode implemented
fransjacobs Mar 6, 2025
7eb01fc
Autodriving tested with Marklin CS
fransjacobs Mar 9, 2025
37ed653
fix failing testcase
fransjacobs Mar 9, 2025
ccb68f6
Refactoring fix minor issue
fransjacobs Mar 9, 2025
01ef366
Minor refactoring added property for disabling screen location storage
fransjacobs Mar 10, 2025
e6a75d5
Start with catching Key events WIP
fransjacobs Mar 13, 2025
0b6f12a
GUI refactoring replaced the feedback monitor by a Dialog WIP
fransjacobs Mar 15, 2025
c8451b1
Fix compile issue
fransjacobs Mar 15, 2025
5cc5b95
Changing Menu plus adding Menu Items. Keyboar now usable in edit mode
fransjacobs Mar 20, 2025
4674440
Added tile loader
fransjacobs Mar 28, 2025
08e8d16
Added Dialogs, Dialogs are accessible via menu and menu items.
fransjacobs Apr 2, 2025
bb941ae
Made the Menu and UI more consistent
fransjacobs Apr 3, 2025
5cf70d1
UI Changes adding a Smal Drive Cab Panel WIP!
fransjacobs Apr 7, 2025
3261643
Added checkstyle plugin
fransjacobs Apr 8, 2025
36c20ab
Fix build
fransjacobs Apr 8, 2025
6bb6e7e
Adding the Smal cab driver Attention point velocity is not kept?
fransjacobs Apr 12, 2025
37697f9
Fix null pointer
fransjacobs Apr 13, 2025
e7c8e06
SmallLocoPanel now really works together with Marklin
fransjacobs Apr 23, 2025
fc5c589
Refactor Marklin messageparsing
fransjacobs May 2, 2025
eab0206
Measurement are now producing values. WIP! wifi sometimes weird respo…
fransjacobs May 3, 2025
f53f0b2
More refactoring on Measurement and connections. Test disabled due to…
fransjacobs May 4, 2025
20a13b8
More refactoring and testing Measurement work now also in GUI
fransjacobs May 5, 2025
1a8f628
Fix testcases issue due to overun of the main db
fransjacobs May 8, 2025
8561432
Test on GitHub still fail adding -verbose tocheck
fransjacobs May 8, 2025
47fdda4
Retrieving feedback modules via CS 3, added test template WIP
fransjacobs May 8, 2025
1cb4125
Minor update in tcp connection for marklin remove skip tests from pom
fransjacobs May 9, 2025
a19a288
Added id's to feedbackmodule creation
fransjacobs May 10, 2025
3398d37
Fix link between objects and object with events. Refactored last thin…
fransjacobs May 10, 2025
54ea9e9
Fix link between objects and object with events. Refactored last thin…
fransjacobs May 10, 2025
61f2406
Merge branch '103-gui-performance' of https://github.com/fransjacobs/…
fransjacobs May 10, 2025
06796aa
Update CommandStationPanel.java
fransjacobs May 10, 2025
0fb13e4
Major refactoring in Sensors. Code Compiles still WIP. Commit due to …
fransjacobs May 11, 2025
fa91087
Sensors partly restored and some test fixed
fransjacobs May 12, 2025
d5b47d9
More refactoring Feedback issues nearly solved. Fixed tests
fransjacobs May 14, 2025
06c7cfd
More refactoring added command_station_id to sensors
fransjacobs May 18, 2025
437ef74
Added discovery
fransjacobs May 18, 2025
c0709e5
Fixed some null pointers, readded icon. Added check for network
fransjacobs May 19, 2025
f2503ce
More refactoring for the connection factories
fransjacobs May 22, 2025
81cb023
Fix test
fransjacobs May 23, 2025
4f5cf25
More work on the new CommandStationDialog Sensor are updated
fransjacobs May 25, 2025
0bb731e
Update CommandStationDialog1.java
fransjacobs May 25, 2025
fd013a9
New CommandStation Dialog is now the default in the settings
fransjacobs May 28, 2025
4f84c2b
Function images now used with ecos
fransjacobs May 28, 2025
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
8 changes: 4 additions & 4 deletions JCS_SETUP_NL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ In JCS wordt een blok altijd gemarkeerd door twee sensoren.
## Het tekenen van de baan

Wanneer JCS is gestart, selecteer je de Bewerken-knop om de bewerkingsmodus te activeren.
![Start Edit](assets/startedit.png)
![Start Edit](assets/startedit.png) Via toesenbord door Ctrl + E.

JCS toont het scherm voor het bewerken van de baan.
![Start Edit](assets/layoutedittoolbar.png)

De werkbalk bevat de meest voorkomende elementen om een baan te tekenen. Een plattegrond van een baan bestaat uit tegels.
Een tegel stelt een component, zoals een recht stuk, sensor, blok, enz. voor.
Gebruik de __+__ knop om een tegel op het canvas toe te voegen. De prullenbakknop verwijdert een tegel.
Klik met de rechtermuisknop op een tegel om eigenschappen te bekijken of de tegel te draaien of om te keren indien van toepassing.
Wanneer een tegel is geselecteerd, kan deze naar de juiste positie worden gesleept.
Gebruik de __+__ knop, of via toetsenbord Alt + A om een tegel op het canvas toe te voegen. De prullenbakknop (Alt +D) verwijdert een tegel.
Klik met de rechtermuisknop op een tegel om eigenschappen te bekijken of de tegel te draaien (Alt + R) of om te keren (Alt + H of Alt + V),
indien van toepassing. Wanneer een tegel is geselecteerd, kan deze naar de juiste positie worden gesleept.
Tegels worden automatisch opgeslagen.
Het voorbeeld ziet er als volgt uit wanneer alle tegels op het canvas zijn geplaatst.

Expand Down
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
JCS is a hobby project of me where I try to automate my Model Railway. Over the past years I have worked on and off on several aspects and modules of the software which are needed to drive automatically.
A short summary of the topics which are needed and used to be able to drive trains automatically:

- Connectivity to the Command Station hardware. (DCC-EX,HSI-S88, Marklin CS2/3)
- Connectivity to the Command Station hardware. (DCC-EX,HSI-S88, Marklin CS2/3 ESU Ecos)
- Edit and display graphically a layout
- With the layout be able to route all the possible drive ways
- Show the routes and driveways in the layout screen
- Graphically feedback events on track to the layout screen
- Automatically run locomotives on the layout
- Input dialogs to setup Accessories, Locomotives, Command stations, etc
- Locomotive Drive Cap so tha you can manually run you locomotive
- Virtual Command Station, to ease testing and simulate automatic driving
- Build in VNC viewer
- Monitor Sensor events

I created a [short video](https://youtu.be/xP6eUdScMY0) demonstrating automatic running of locomotives. Also a [video of pysical locomotives running on the Test Layout](https://www.youtube.com/watch?v=CyLmGk6gfHA)
Expand Down Expand Up @@ -78,7 +80,7 @@ To debug or easly setup your feedback sensors

## Releases

- [First Release V 0.0.1](https://github.com/fransjacobs/model-railway/releases/tag/V0.0.1)
- [Latest Release V 0.0.2](https://github.com/fransjacobs/model-railway/releases/tag/V0.0.2)

## Supported Hardware

Expand All @@ -94,10 +96,9 @@ To debug or easly setup your feedback sensors
Currently the following feature are in development:

- Documentation
- Internationalization enable multiple languages
- Add support for ESU ECOS
- Show Signal aspects in automatic driving
- Enhance GUI
- Show Signal aspects in automatic driving
- Internationalization enable multiple languages
- Add more Unit tests
- ...

Expand Down Expand Up @@ -125,7 +126,7 @@ Currently the following feature are in development:
</tr>
</table>

## Copyright 2019 - 2024 Frans Jacobs
## Copyright 2019 - 2025 Frans Jacobs

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
Expand Down
4 changes: 4 additions & 0 deletions nb-configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,9 @@ Any value defined here will override the pom.xml file value but is only applicab
<org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs>true</org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs>
<org-netbeans-modules-editor-indent.CodeStyle.usedProfile>project</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>
<netbeans.compile.on.save>all</netbeans.compile.on.save>
<com-junichi11-netbeans-changelf.enable>true</com-junichi11-netbeans-changelf.enable>
<com-junichi11-netbeans-changelf.use-project>true</com-junichi11-netbeans-changelf.use-project>
<com-junichi11-netbeans-changelf.lf-kind>LF</com-junichi11-netbeans-changelf.lf-kind>
<com-junichi11-netbeans-changelf.use-global>false</com-junichi11-netbeans-changelf.use-global>
</properties>
</project-shared-configuration>
16 changes: 15 additions & 1 deletion nbactions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,18 @@
<goal>test</goal>
</goals>
</action>
</actions>
<action>
<actionName>CUSTOM-checkstyle:check</actionName>
<displayName>checkstyle:check</displayName>
<goals>
<goal>checkstyle:check</goal>
</goals>
</action>
<action>
<actionName>CUSTOM-test</actionName>
<displayName>test</displayName>
<goals>
<goal>test</goal>
</goals>
</action>
</actions>
9 changes: 9 additions & 0 deletions nbproject/private/profiler/settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="org.netbeans.modules.profiler.v2.features.ObjectsFeature_SelectedClassesMode_LIMIT_ALLOCATIONS_FLAG">10</entry>
<entry key="ACTIVATED_FEATURES">#org.netbeans.modules.profiler.v2.features.LocksFeature@#org.netbeans.modules.profiler.v2.features.MethodsFeature@#org.netbeans.modules.profiler.v2.features.MonitorFeature@</entry>
<entry key="org.netbeans.modules.profiler.v2.features.ObjectsFeature_SETTINGS_FLAG">true</entry>
<entry key="org.netbeans.modules.profiler.v2.features.ObjectsFeature_MODE_FLAG">ProjectClassesMode</entry>
<entry key="SINGLE_FEATURE">false</entry>
</properties>
Binary file not shown.
34 changes: 31 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@
<artifactId>logback-classic</artifactId>
<version>1.2.13</version>
</dependency>
<!--dependency>
<groupId>com.sshtools</groupId>
<artifactId>two-slices</artifactId>
<version>0.9.4</version>
</dependency-->
<dependency>
<groupId>org.netbeans.external</groupId>
<artifactId>AbsoluteLayout</artifactId>
Expand Down Expand Up @@ -204,9 +209,10 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<compilerArgs>--enable-preview</compilerArgs>
<!--compilerArgs>-Xlint:unchecked,-verbose</compilerArgs-->
<compilerArgs>-verbose</compilerArgs>
<release>21</release>
<showDeprecation>false</showDeprecation>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
Expand All @@ -233,6 +239,7 @@
<version>3.3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>db:encryptable</nonFilteredFileExtension>
<nonFilteredFileExtension>db</nonFilteredFileExtension>
Expand Down Expand Up @@ -289,7 +296,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<!--testFailureIgnore>false</testFailureIgnore-->
<argLine>-Dfile.encoding=UTF-8</argLine>
<configurationParameters>
junit.jupiter.execution.parallel.enabled=false
Expand Down Expand Up @@ -347,6 +354,27 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.23.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle</id>
<phase>checkstyle</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.github.fvarrui</groupId>
<artifactId>javapackager</artifactId>
Expand Down
Loading
Loading