UCSD-E4E / radio_collar_tracker_gcs

Ground Control Station software for the Radio Collar Tracker
http://e4e.ucsd.edu/radio-collar-tracker
GNU General Public License v3.0
1 stars 0 forks source link

Fixed so GUI is only manipulated in main thread #54

Closed hgrehm closed 1 year ago

hgrehm commented 1 year ago

What I thought had been random behavior caused by a race condition ended up being caused by manipulation of PyQt GUI in threads other than main. Checked threads calling any GUI-related functions to ensure only main does so and reconfigured those which didn't comply.

hgrehm commented 1 year ago

b4ea649 resolves #42 Component statuses must be manually updated if running simulator, ex: sim.setSystemState('STS_sysStatus', 3)

hgrehm commented 1 year ago

a0d77e8 resolves #30 DataProvider feature had not been properly cleared + unimplemented function had been in exportPolygon function, both fixed

ntlhui commented 1 year ago

Bug:

Run Drone Simulator with the following gcsConfig.ini:

[FilePaths]
prefixpath = C:/Users/nthui/miniconda3/pkgs/qgis-3.28.2-py39hdacd352_1
prefixset = True

[LastCoords]
lat1 = 0.00017781252633007055
lat2 = 0.00017592349602529045
lon1 = -0.0007197364076617262
lon2 = -0.0007182240862076503

[Connection]
addr = 127.0.0.1
port = 9000
mode = drone

Result:

Exception has occurred: AttributeError
'RCTTCPServer' object has no attribute 'simList'
  File "D:\workspace\e4e\rct\radio_collar_tracker_gcs\scripts\droneSimulator.py", line 1006, in __init__
    while len(tsport.simList) == 0:
  File "D:\workspace\e4e\rct\radio_collar_tracker_gcs\scripts\droneSimulator.py", line 1079, in <module>
    sim = droneSimPack(args.port, args.target, args.protocol, args.clients);
AttributeError: 'RCTTCPServer' object has no attribute 'simList'

This behavior introduced in 89684f3f9dc7d9872a70b23ebaf1bc79f2cc6bfd