Merge pull request #46 from PAMGuard/main

get V2.02.08 from main
This commit is contained in:
Douglas Gillespie 2023-06-09 12:53:30 +01:00 committed by GitHub
commit 68b2f3bb53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 283 additions and 207 deletions

View File

@ -463,25 +463,41 @@ name="_Latest_Version_2.02.08"></a><span lang=EN-US>Latest Version 2.02.08 May
which mostly occurred when processing large datasets of many offline files, has
been fixed.</span></p>
<p class=MsoNormal><span lang=EN-US>Data Map: “Scroll To Data” pop-up menu,
which didnt always scroll to the correct place, is now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>Bearing Localiser offline: If reprocessing
bearings, the localizer was not correctly loading required raw or FFT data to
input to the cross correlation algorithm. This is now fixed so that you can
reprocess bearings in viewer mode. </span></p>
<p class=MsoNormal><span lang=EN-US>Map files: Added additional exception handlers
to handle corrupt map files. </span></p>
<h2><span lang=EN-US>New Features</span></h2>
<p class=MsoNormal><span lang=EN-US>Restart Options: When you restart
processing of offline files, if output data already exist (binary data of
within database tables) you will be asked if you want to overwrite the data, cancel,
or try to continue from where to left off. </span></p>
within database tables) you will be asked if you want to overwrite the data,
cancel, or try to continue from where to left off. </span></p>
<p class=MsoNormal><span lang=EN-US>Updated SoundTrap sud file interface so
that PAMGuard now extracts and stores the Click Detector settings from the sud
files and stores them within the PAMGuard configuration. This does not affect
processing, but is important for record keeping. </span></p>
<p class=MsoNormal><span lang=EN-US>GPS options to use any valid RMC or GGA
string. Not all GPS receivers output their RMC data as GPRMC e.g. some may
output as GNRMC. A new option allows the GPS module to use any string, whatever
the first two characters of the string name may be. </span></p>
<h1><span lang=EN-US>Version 2.02.07 January 2023</span></h1>
<h2><span lang=EN-US>Bug Fixes</span></h2>
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation
data for static hydrophones had a bug whereby it would continually forget
angle offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
data for static hydrophones had a bug whereby it would continually forget angle
offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>Click tool bar: Correctly shows event
selection options even if no species classification options are in place. </span></p>
@ -491,8 +507,8 @@ selection options even if no species classification options are in place. </span
mode. Now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>ROCCA: Fixed (another) memory leak which
caused PAMGuard to crash when processing large data sets with the ROCCA classifier.
</span></p>
caused PAMGuard to crash when processing large data sets with the ROCCA
classifier. </span></p>
<p class=MsoNormal><span lang=EN-US>Ishmael Modules: Fixed bug which
occasionally caused crashes when processing many files offline. </span></p>
@ -509,10 +525,10 @@ generates random chirps between around 200 and 800Hz, roughly the frequency
youd expect sound from higher frequency baleen whales, such as humpbacks, to
vocalise at. &nbsp;&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to
permanently turn off all tool tips, or tap the Esc key to turn them off for 6
seconds if they are getting in the way, particularly when trying to interact
with displays using the mouse. </span></p>
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to permanently
turn off all tool tips, or tap the Esc key to turn them off for 6 seconds if
they are getting in the way, particularly when trying to interact with displays
using the mouse. </span></p>
<h1><span lang=EN-US>Version 2.02.06 November 2022</span></h1>
@ -535,9 +551,9 @@ whistle classification module.</span></p>
SoundTrap autonomous recorders from Ocean Instruments, you no longer need to
decompress the SoundTrap files prior to processing. This will save time and a
lot of disk space. Extraction of clicks from the inbuilt SoundTrap Click
detector can also happen while processing SUD file data with other detectors,
thereby streamlining the whole processing chain. Read the online Help for
details. &nbsp;&nbsp;</span></p>
detector can also happen while processing SUD file data with other detectors, thereby
streamlining the whole processing chain. Read the online Help for details.
&nbsp;&nbsp;</span></p>
<h1><span lang=EN-US>Version 2.02.05 October 2022</span></h1>
@ -670,12 +686,12 @@ understand the notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta
Version 2.00.10</a> before proceeding with installation and use of this
version.</b></p>
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 16
(OpenJDK release), so you will not need to install a java runtime engine
separately. PSFX files generated in previous beta releases (2.xx.xx) should be
compatible with this version, and vice-versa. PSF files generated in core
releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
files when PAMGuard exits.</p>
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 16 (OpenJDK
release), so you will not need to install a java runtime engine separately.
PSFX files generated in previous beta releases (2.xx.xx) should be compatible
with this version, and vice-versa. PSF files generated in core releases
(1.15.xx) can be loaded in this version, but will be converted to PSFX files
when PAMGuard exits.</p>
<p class=MsoNormal style='margin-bottom:0cm'><span style='font-size:12.0pt;
font-family:"Times New Roman",serif'>&nbsp;</span></p>
@ -723,8 +739,8 @@ params </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Bug
&nbsp; 492. Data Model does not update button//tooltip text when underlying
data changes </p>
&nbsp; 492. Data Model does not update button//tooltip text when underlying data
changes </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Bug
@ -800,9 +816,9 @@ Update whistle and moan detector to better handle small stubs or spurs coming
off the side of whistles </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>13. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
Extend the Hyperbolic Localiser to handle 2D planar arrays (previously limited
to 3D volumetric arrays) </p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>Extend the Hyperbolic Localiser to handle 2D planar arrays
(previously limited to 3D volumetric arrays) </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>14. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
@ -816,20 +832,20 @@ decimating/upsampling by a non-integer amount </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>16. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
Noise Level Outputs - as an aid to performance diagnosis, some detectors
(currently the GPL, Click Detector and Whistle and Moan Detector) are outputting
additional noise metrics to their binary output files. These can be read with
the <a href="https://sourceforge.net/projects/pamguard/files/Matlab/">PAMGuard
(currently the GPL, Click Detector and Whistle and Moan Detector) are
outputting additional noise metrics to their binary output files. These can be
read with the <a href="https://sourceforge.net/projects/pamguard/files/Matlab/">PAMGuard
Matlab library</a> and used to diagnose system performance in varying noise
conditions. Improved displays within PAMGuard for these noise metrics will be
included in a future release. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>17. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
An implementation of the Generalized Power Law Detector, developed by Tyler
Helble ([Helble et al., ÃÂA generalized power-law detection algorithm for humpback
whale vocalizationsÃÂ, The Journal of the Acoustical Society of America, vol.
131, no. 4, pp. 2682ÃÂ2699, 2012) is now available. For details, see the
online help </p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>An implementation of the Generalized Power Law Detector,
developed by Tyler Helble ([Helble et al., ÃÂA generalized power-law
detection algorithm for humpback whale vocalizationsÃÂ, The Journal of the
Acoustical Society of America, vol. 131, no. 4, pp. 2682ÃÂ2699, 2012) is now
available. For details, see the online help </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
@ -850,11 +866,11 @@ understand the notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta
Version 2.00.10</a> before proceeding with installation and use of this
version.</b></p>
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
should be compatible with this version, and vice-versa. PSF files generated in
core releases (1.15.xx) can be loaded in this version, but will be converted to
PSFX files when PAMGuard exits.</p>
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13 (release
13.0.1). PSFX files generated in previous beta releases (2.xx.xx) should be
compatible with this version, and vice-versa. PSF files generated in core
releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
files when PAMGuard exits.</p>
<p class=MsoNormal><b><span lang=EN-US>Bug Fixes</span></b></p>
@ -941,9 +957,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nb
lang=EN-US> </span>Better auto-scaling in Ishmael Detector graphics window. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
Change to Windows temporary folder location, to get around Windows Security
settings that were preventing some modules from working properly. </p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>Change to Windows temporary folder location, to get around Windows
Security settings that were preventing some modules from working properly. </p>
<!-- ************************************************************************************************************************** --><!-- ************************************************************************************************************************** -->
@ -999,8 +1015,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nb
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>8. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Bug
&nbsp; 460. Click Detector BT Display vertical axis shows all zeroes when
zooming out </p>
&nbsp; 460. Click Detector BT Display vertical axis shows all zeroes when zooming
out </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Bug
@ -1171,8 +1187,8 @@ lang=EN-US> </span>Bug 436. Bug in Serial Port interface was occassionally
causing PAMGuard to crash without error message.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
Bug 437. Right whale detector crashing if no input was set.</p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>Bug 437. Right whale detector crashing if no input was set.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
@ -1283,8 +1299,8 @@ Added a few new options to the Click Detector Sweep Classifier. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>Add option to the Map module's Plot Overlay Options dialog,
to show events occuring in the future (<em><span style='font-family:"Calibri",sans-serif'>look
lang=EN-US> </span>Add option to the Map module's Plot Overlay Options dialog, to
show events occuring in the future (<em><span style='font-family:"Calibri",sans-serif'>look
ahead</span></em>) instead of the default display of events which have already
occurred. Can make it easier to match up the map with clicks seen in the Click
Detector display. </p>
@ -1605,9 +1621,9 @@ from many channels.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bugs 398 and 399. Click Detector, FFT Engine and Filter modules were
losing source during startup, if the source selected was not the first raw data
source in the list.</p>
</span>Bugs 398 and 399. Click Detector, FFT Engine and Filter modules were losing
source during startup, if the source selected was not the first raw data source
in the list.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -1721,10 +1737,10 @@ lang=EN-US> </span>Better way of coupling scrollers in User Display panels -
see new options in main menu.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
Added Matched Template Click Classifier. Classifies clicks based on an ideal
template to match and a template to reject. An example of this is to classify
beaked whale clicks in an environment with dolphin clicks.</p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>Added Matched Template Click Classifier. Classifies clicks based
on an ideal template to match and a template to reject. An example of this is
to classify beaked whale clicks in an environment with dolphin clicks.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
@ -1988,8 +2004,8 @@ invalid parameters. Have added diagnostics to prevent this.</p>
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
User is now able to specify Soundtrap date/time format</p>
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>User is now able to specify Soundtrap date/time format</p>
<!-- ************************************************************************************************************************** -->
@ -2081,9 +2097,9 @@ Added circular movement option to source simulation </p>
<h1><a name="_Latest_Beta_Version_2.00.10"></a><span lang=EN-US>Beta Version
2.00.10 June 2017</span></h1>
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates.
You should read and understand these notes before proceeding with installation
and use of this version. These changes have been funded under contract to NOAA
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates. You
should read and understand these notes before proceeding with installation and
use of this version. These changes have been funded under contract to NOAA
Fisheries, contract no. WE-133F-16-SE-1126.</span></p>
<h3><span lang=EN-US>Binary File Structural Changes</span></h3>
@ -2161,10 +2177,10 @@ so they will no longer work with older PAMGuard versions.</span></p>
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
lang=EN-US>2.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Display colour options will be lost and most data displayed
on the map may default to black. This is due to the above changes to how
colours are managed. Changing back to the colours of your choice is relatively
simple through the PAMGuard GUI. </span></p>
</span><span lang=EN-US>Display colour options will be lost and most data
displayed on the map may default to black. This is due to the above changes to
how colours are managed. Changing back to the colours of your choice is
relatively simple through the PAMGuard GUI. </span></p>
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
lang=EN-US>&nbsp;</span></p>
@ -2220,14 +2236,14 @@ switches/parameters to be included in *.ini files.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data
saying what get's plotted on each map and for how long became corrupted and the
list grew to a ridiculous size. Code has been put in place to a) stop it
happening again and b) to repair any configuration files which are corrupted.
Corrupted files will be slow to load, slow to save and will be &gt; several
megabytes in size. It may be necessary to delete the PamguardSettings table in
any databases since these too may have become oversized which will slow down
viewer mode PAMGuard start-up.</p>
</span><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data saying
what get's plotted on each map and for how long became corrupted and the list
grew to a ridiculous size. Code has been put in place to a) stop it happening
again and b) to repair any configuration files which are corrupted. Corrupted
files will be slow to load, slow to save and will be &gt; several megabytes in
size. It may be necessary to delete the PamguardSettings table in any databases
since these too may have become oversized which will slow down viewer mode
PAMGuard start-up.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -2488,8 +2504,8 @@ detector has been tidied up so that there are a) All Click, b) Tracked Clicks
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>When tracking online, all the click marking information
is written to the same database tables as are used for offline target motion
analysis. This means than when reviewing data offline, the tracks created in real
time are now available for review and further analysis. </span></p>
analysis. This means than when reviewing data offline, the tracks created in
real time are now available for review and further analysis. </span></p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -2517,9 +2533,9 @@ the future. </span></p>
<p class=MsoNormal><i>Logger Form Design</i></p>
<p class=MsoNormal>A GUI driven system for designing Logger forms has been
released. Currently, this feature has no online help, but is reasonably
intuitive compared to the old method of typing directly into the database. </p>
<p class=MsoNormal>A GUI driven system for designing Logger forms has been released.
Currently, this feature has no online help, but is reasonably intuitive
compared to the old method of typing directly into the database. </p>
<p class=MsoNormal><i><span lang=EN-US>Improved Number handling</span></i></p>
@ -2719,8 +2735,8 @@ same click multiple times</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Bug 253. Database import fails when Access database
contains queries. Fixed.</span></p>
</span><span lang=EN-US>Bug 253. Database import fails when Access database contains
queries. Fixed.</span></p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -2825,10 +2841,10 @@ displaying in the viewer. This is now fixed. </span></p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
lang=EN-US>3.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Bug 248. Crash in hydrophone array manager. Bug in
array manager would crash PAMGuard when the click detector was configured with
more channels than the sound acquisition system (almost impossible to achieve,
but someone managed it). </span></p>
</span><span lang=EN-US>Bug 248. Crash in hydrophone array manager. Bug in array
manager would crash PAMGuard when the click detector was configured with more
channels than the sound acquisition system (almost impossible to achieve, but
someone managed it). </span></p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -2897,8 +2913,8 @@ writing results files. Fixed. </p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
lang=EN-US>7.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bug 237. Logger forms not saving data to database after sound
acquisition starts. Fixed. </p>
</span>Bug 237. Logger forms not saving data to database after sound acquisition
starts. Fixed. </p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>8.<span
style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -2941,15 +2957,15 @@ which is useful when using PAMGuard for demonstration purposes. </p>
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>The sound File and Folder audio input systems now have an optional time
zone setting. Note that PAMGuard analysis should still all be taking place in
UTC and that this option is intended to allow the conversion of file times
which were not recorded as UTC into UTC and not the other way around. Use the
option with caution !</p>
UTC and that this option is intended to allow the conversion of file times which
were not recorded as UTC into UTC and not the other way around. Use the option
with caution !</p>
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>The Open Office Database system has been removed from the list of
available options since it is not reliable. If you require a free database
solution we recommend you use the MySql Community Server <a
</span>The Open Office Database system has been removed from the list of available
options since it is not reliable. If you require a free database solution we
recommend you use the MySql Community Server <a
href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></p>
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
@ -3172,8 +3188,8 @@ correctly calculated in real world coordinates. </p>
<p class=MsoNormal><i>Wild ArcGIS Interface</i> (Maps and Mapping group)</p>
<p class=MsoNormal>This module, developed by Michael Oswald / SWFSC, allows
PAMGuard to output data in a format suitable for display in the WILD ArcGIS marine
mammal survey package. See online help for details. </p>
PAMGuard to output data in a format suitable for display in the WILD ArcGIS
marine mammal survey package. See online help for details. </p>
<p class=MsoNormal><i>Alarms</i> (Utilities Group)</p>
@ -3380,9 +3396,9 @@ other data sources for the PAMGuard viewer. </p>
<p class=MsoNormal style='margin-left:36.0pt'><i>Database</i></p>
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary
storage to the database offline for any module having both binary and database
storage. </p>
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary storage
to the database offline for any module having both binary and database storage.
</p>
<p class=MsoNormal style='margin-left:36.0pt'>Can create a blank MS Access
database (2007 and later *.accdb formats only).</p>
@ -3475,9 +3491,9 @@ have implemented database storage for output of these modules. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Radar Display: A bug which stopped the radar display from correctly displaying
bearings to whistles from arrays containing more than two hydrophone elements
has been fixed. </p>
</span>Radar Display: A bug which stopped the radar display from correctly
displaying bearings to whistles from arrays containing more than two hydrophone
elements has been fixed. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -3533,8 +3549,8 @@ start-up.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bug in Noise Monitor. Version 1.11.01 would crash if only a subset of
channels were selected, e.g. if you only measured noise on channel 0 of a two
channel configuration. This bug is now fixed</p>
channels were selected, e.g. if you only measured noise on channel 0 of a two channel
configuration. This bug is now fixed</p>
<h2>Version 1.11.01 Beta April 2012</h2>
@ -3589,8 +3605,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bearings can be calculated using the envelope of the waveform rather than
the full waveform. The waveform or envelope can also be filtered prior to
</span>Bearings can be calculated using the envelope of the waveform rather
than the full waveform. The waveform or envelope can also be filtered prior to
bearing calculation.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
@ -3746,8 +3762,8 @@ frequency division (i.e. previous versions would convert well from 96kHz to
<p class=MsoNormal><b>Bug fixes</b></p>
<p class=MsoNormal>1. Placement of axes on some displays (array manager and depth
side panel). Problem in 1.9.01 Beta now fixed. </p>
<p class=MsoNormal>1. Placement of axes on some displays (array manager and
depth side panel). Problem in 1.9.01 Beta now fixed. </p>
<p class=MsoNormal>2. Fixed problems of NMEA read out not restarting after a
serial drop out. NMEA now restarts correctly. </p>
@ -3809,8 +3825,8 @@ of channel numbering was only implemented several years into the PAMGUARD
project, it was never fully implemented or well supported by the different
modules which resulted in a number of bugs which could cause confusion as to
which hydrophones were being used during localisation or during calibrated
measurement. The situation tended to only arise with a small number of ASIO
sound cards such as the RME Fireface 400 on which the most useful inputs, the
measurement. The situation tended to only arise with a small number of ASIO sound
cards such as the RME Fireface 400 on which the most useful inputs, the
balanced line inputs, are hardware channels 4,5,6 and 7 on the back of the
instrument. (On the Fireface 800, the balanced line inputs are channels 0 to
7). When using the National Instruments system, data were always sent into the
@ -3833,14 +3849,13 @@ out a better system for handling channel numbering in PAMGUARD and have decided
that the only practical thing to do is to force all software channel numbering
back to a zero indexed system. i.e. even if you read out hardware channels
3,4,5 and 6, within PAMGUARD, everywhere apart from the Sound acquisition
dialog, you will see them listed as channels 0,1,2 and 3. &nbsp;The
consequences of doing this are mainly very good. Most users will not notice any
changes. For those who need for some reason to read channel numbers not
starting at zero things will be more stable. However, when you go to a new
version with this new feature, it will be necessary to reconfigure all the
modules in any existing configurations. To do this, open the configuration
dialog for each module in turn and select the correct, zero indexed, channel
number. </p>
dialog, you will see them listed as channels 0,1,2 and 3. &nbsp;The consequences
of doing this are mainly very good. Most users will not notice any changes. For
those who need for some reason to read channel numbers not starting at zero
things will be more stable. However, when you go to a new version with this new
feature, it will be necessary to reconfigure all the modules in any existing
configurations. To do this, open the configuration dialog for each module in
turn and select the correct, zero indexed, channel number. </p>
<p class=MsoNormal><b>Other Changes / new features</b></p>
@ -3897,8 +3912,8 @@ existing configurations. </p>
<p class=MsoNormal>Sound acquisition</p>
<p class=MsoNormal>Changes made for a previous Mac build now incorporated into
main Beta branch. This should allow for basic 2 channel sound acquisition using
<p class=MsoNormal>Changes made for a previous Mac build now incorporated into main
Beta branch. This should allow for basic 2 channel sound acquisition using
Macs. </p>
<p class=MsoNormal>Bug Fixes</p>
@ -4022,10 +4037,10 @@ synchronisation.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Wigner time-frequency plot for the click detector. Clicks are NOT automatically
displayed in the Winger window as they are for the waveform and spectrum
windows since the Wigner transformation is very time consuming. Clicks will be
displayed if you select them with the mouse.</p>
</span>Wigner time-frequency plot for the click detector. Clicks are NOT
automatically displayed in the Winger window as they are for the waveform and
spectrum windows since the Wigner transformation is very time consuming. Clicks
will be displayed if you select them with the mouse.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -4091,9 +4106,8 @@ methods used in PAMGUARD</p>
<p class=MsoNormal><b>New Modules</b></p>
<p class=MsoNormal>Two new modules are packaged. These are still in the final
stages of development. Feedback is most welcome. See online help for further
details. </p>
<p class=MsoNormal>Two new modules are packaged. These are still in the final stages
of development. Feedback is most welcome. See online help for further details. </p>
<p class=MsoNormal>Whistle and Moan Detector</p>
@ -4120,9 +4134,9 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Channel lists in output data streams of Decimator and other modules fixed,
so that when channel numbers change, downstream modules configurations get the
correct list of available channels. </p>
</span>Channel lists in output data streams of Decimator and other modules
fixed, so that when channel numbers change, downstream modules configurations
get the correct list of available channels. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -4334,8 +4348,8 @@ acquisition.&nbsp; </p>
<p class=MsoNormal><b>Bug fixes</b></p>
<p class=MsoNormal>Speed up of graphics, particularly regarding large
quantities of gps track &nbsp;data</p>
<p class=MsoNormal>Speed up of graphics, particularly regarding large quantities
of gps track &nbsp;data</p>
<p class=MsoNormal>National Instruments cards with names &gt; 20 characters
long are now correctly &nbsp;recognised. </p>
@ -4763,8 +4777,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Multi animal click tracking with least squares fit calculation of position
on map</p>
</span>Multi animal click tracking with least squares fit calculation of
position on map</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

View File

@ -104,9 +104,13 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
boolean ans = super.prepareInputFile();
if (ans == false && ++currentFile < allFiles.size()) {
System.out.println("Failed to open sound file. Try again with file " + allFiles.get(currentFile).getName());
/*
* jumping striaght to the next file messes it up if it thinks the files
* are continuous, so we HAVE to stop and restart.
*/
// return prepareInputFile();
PamController.getInstance().pamStop();
PamController.getInstance().startLater();
PamController.getInstance().startLater(false);
}
return ans;
}
@ -648,7 +652,17 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
}
setFolderProgress();
// sayEta();
ans = prepareInputFile();
/*
* I think that here, we just need a check of the file. the prepareInputFile in
* this class will (on failure) move straight to the next file and also issue a
* stop/start, which is not good if it's trying a continuous file, where this is
* being called, if false is returned it should manage moving onto the next file by
* itself if we use the super.prep ....
*/
ans = super.prepareInputFile();
if (ans == false) {
return false;
}
currentFileStart = System.currentTimeMillis();
// if (ans && audioFormat.getSampleRate() != currentSampleRate && currentFile > 0) {
// acquisitionControl.getDaqProcess().setSampleRate(currentSampleRate = audioFormat.getSampleRate(), true);

View File

@ -22,7 +22,7 @@ public class SUDFileType extends SoundFileType {
if (isShown) {
return;
}
WarnOnce.showWarning("SoundTrap SUD Files", sudInfoText, WarnOnce.OK_OPTION);
// WarnOnce.showWarning("SoundTrap SUD Files", sudInfoText, WarnOnce.OK_OPTION);
isShown = true;
}

View File

@ -48,9 +48,9 @@ public class SudAudioFile extends WavAudioFile {
}
// don't do anything and it will try the built in Audiosystem
catch (UnsupportedAudioFileException e) {
System.err.println("Could not open sud file: not a supported file " + soundFile.getName());
e.printStackTrace();
System.err.println("UnsupportedAudioFileException: Could not open sud file: not a supported file " + soundFile.getName());
System.err.println(e.getMessage());
// e.printStackTrace();
} catch (IOException e) {
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());

View File

@ -46,7 +46,8 @@ public class SudAudioFileReader {
try {
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
} catch (Exception e) {
e.printStackTrace();
String msg = String.format("Corrupt sud file %s: %s", file.getName(), e.getMessage());
throw new UnsupportedAudioFileException(msg);
}
return sudAudioInputStream;
}

View File

@ -245,6 +245,31 @@ public class GPSControl extends PamControlledUnit implements PamSettings, Positi
public GpsDataUnit getShipPosition(long timeMilliseconds) {
return getGpsDataBlock().getClosestUnitMillis(timeMilliseconds);
}
/**
* Do we want this string ? It will be either RMC or GGA and may want wildcarding
* @param stringId
* @return
*/
public boolean wantString(String stringId) {
if (stringId == null || stringId.length() < 6) {
return false;
}
if (gpsControl.gpsParameters.allowWildcard) {
String lastBit = stringId.substring(3, 6);
switch (gpsControl.gpsParameters.mainString) {
case GPSParameters.READ_RMC:
return lastBit.equals("RMC");
case GPSParameters.READ_GGA:
return lastBit.equals("GGA");
default:
return false;
}
}
else {
String wantedString = gpsControl.getWantedString();
return stringId.equals(wantedString);
}
}
/**
* Get the name of the string we're wanting.

View File

@ -59,6 +59,8 @@ public class GPSParameters implements Serializable, Cloneable, ManagedParameters
public String rmcInitials = "GP";
public String ggaInitials = "GP";
public boolean allowWildcard = true;
/**
* Attempt to read true heading information
*/

View File

@ -149,9 +149,9 @@ public class GPSParametersDialog extends PamDialog {
}
}
public static GPSParameters showDialog(Frame parentFrame, GPSParameters gpsParameters) {
if (parentFrame != lastFrame || gpsParametersDialog == null) {
// if (parentFrame != lastFrame || gpsParametersDialog == null) {
gpsParametersDialog = new GPSParametersDialog(parentFrame);
}
// }
gpsParametersDialog.gpsParameters = gpsParameters.clone();
gpsParametersDialog.setParams();
gpsParametersDialog.setVisible(true);
@ -335,6 +335,7 @@ public class GPSParametersDialog extends PamDialog {
JRadioButton ggaString;
JTextField rmcInitials;
JTextField ggaInitials;
JCheckBox allowWildcard;
public MainStringPanel() {
super();
setBorder(new TitledBorder("Main Nav' data string"));
@ -345,6 +346,14 @@ public class GPSParametersDialog extends PamDialog {
ButtonGroup buttonGroup = new ButtonGroup();
c.gridx = 0;
c.gridy++;
c.gridwidth = 5;
this.add(allowWildcard = new JCheckBox("Allow any string initials"), c);
allowWildcard.setToolTipText("Use RMC or GGA data from any source independent of the string initials (e.g. GP, GN, etc.)");
c.gridy ++;
c.gridwidth = 1;
c.gridx=0;
addComponent(this, new JLabel("RMC String"), c);
c.gridx ++;
addComponent(this, rmcString = new JRadioButton(""), c);
@ -355,6 +364,7 @@ public class GPSParametersDialog extends PamDialog {
c.gridx = 0;
c.gridy ++;
c.gridwidth = 1;
addComponent(this, new JLabel("GGA String"), c);
c.gridx++;
addComponent(this, ggaString = new JRadioButton(""), c);
@ -363,6 +373,7 @@ public class GPSParametersDialog extends PamDialog {
c.gridx++;
addComponent(this, new JLabel(" GGA"), c);
allowWildcard.addActionListener(this);
rmcString.addActionListener(this);
ggaString.addActionListener(this);
buttonGroup.add(rmcString);
@ -374,10 +385,12 @@ public class GPSParametersDialog extends PamDialog {
ggaString.setSelected(gpsParameters.mainString == GPSParameters.READ_GGA);
rmcInitials.setText(gpsParameters.rmcInitials);
ggaInitials.setText(gpsParameters.ggaInitials);
allowWildcard.setSelected(gpsParameters.allowWildcard);
enableControls();
}
public boolean getParams() {
gpsParameters.allowWildcard = allowWildcard.isSelected();
if (ggaString.isSelected()) {
gpsParameters.mainString = GPSParameters.READ_GGA;
}
@ -385,12 +398,12 @@ public class GPSParametersDialog extends PamDialog {
gpsParameters.mainString = GPSParameters.READ_RMC;
}
gpsParameters.rmcInitials = rmcInitials.getText();
if (gpsParameters.rmcInitials.length() != 2) {
return false;
if (gpsParameters.rmcInitials.length() != 2 && !gpsParameters.allowWildcard) {
return showWarning("Expecting a two character identifier for RMC strings");
}
gpsParameters.ggaInitials = ggaInitials.getText();
if (gpsParameters.ggaInitials.length() != 2) {
return false;
if (gpsParameters.ggaInitials.length() != 2 && !gpsParameters.allowWildcard) {
return showWarning("Expecting a two character identifier for GGA strings");
}
return true;
}
@ -400,8 +413,9 @@ public class GPSParametersDialog extends PamDialog {
}
private void enableControls() {
rmcInitials.setEnabled(rmcString.isSelected());
ggaInitials.setEnabled(ggaString.isSelected());
boolean wild = allowWildcard.isSelected();
rmcInitials.setEnabled(rmcString.isSelected() & !wild);
ggaInitials.setEnabled(ggaString.isSelected() & !wild);
}

View File

@ -57,7 +57,7 @@ public class ProcessNmeaData extends PamProcess {
private GpsLogger gpsLogger;
private String wantedString = "$GPRMC";
// private String wantedString = "$GPRMC";
private GpsDataUnit previousUnit = null;
@ -161,7 +161,7 @@ public class ProcessNmeaData extends PamProcess {
@Override
public void noteNewSettings() {
findNMEADataBlock();
setWantedString();
// setWantedString();
double minRate = Math.max(.2, 1./gpsController.gpsParameters.readInterval);
processCheck.getOutputCounter().setMinRate(minRate);
}
@ -179,7 +179,8 @@ public class ProcessNmeaData extends PamProcess {
StringBuffer nmeaString = nmeaData.getCharData();
String stringId = NMEADataBlock.getSubString(nmeaString, 0);
if (stringId.equalsIgnoreCase(wantedString)) {
// if (stringId.equalsIgnoreCase(wantedString)) {
if (gpsController.wantString(stringId)) {
gpsData = new GpsData(nmeaString, gpsController.gpsParameters.mainString); // GpsData constructor which
// unpacks the string.
if (gpsData.isDataOk()) {
@ -316,13 +317,13 @@ public class ProcessNmeaData extends PamProcess {
super.clearOldData();
}
public String getWantedString() {
return wantedString;
}
public void setWantedString() {
wantedString = gpsController.getWantedString();
}
// public String getWantedString() {
// return wantedString;
// }
//
// public void setWantedString() {
// wantedString = gpsController.getWantedString();
// }
public GPSControl getGpsController() {
return gpsController;

View File

@ -221,9 +221,8 @@ public class UpdateClockDialog extends JDialog implements ActionListener, PamObs
// NMEADataBlock nmeaDataBlock = (NMEADataBlock) o;
NMEADataUnit nmeaDataUnit = (NMEADataUnit) arg;
StringBuffer nmeaData = nmeaDataUnit.getCharData();
String wantedString = gpsControl.getWantedString();
String stringId = NMEADataBlock.getSubString(nmeaData, 0);
if (wantedString.equals(stringId) == false) {
if (gpsControl.wantString(stringId) == false) {
return;
}
if (gpsControl.gpsParameters.mainString == GPSParameters.READ_GGA) {
@ -232,6 +231,8 @@ public class UpdateClockDialog extends JDialog implements ActionListener, PamObs
newRMCData(nmeaData);
}
}
@Override
public void updateData(PamObservable observable, PamDataUnit pamDataUnit) {
// TODO Auto-generated method stub

View File

@ -810,6 +810,9 @@ public class TMGroupLocInfo implements GroupLocInfo {
for (int i = 0; i < nSubDetections; i++) {
localisation = getParentDetection().getSubDetection(i).getLocalisation();
if (localisation == null) {
continue;
}
angles = localisation.getAngles();
angleErrors = localisation.getAngleErrors();
@ -879,6 +882,10 @@ public class TMGroupLocInfo implements GroupLocInfo {
totalVectors += nVectors;
}
if (totalVectors == 0) {
return;
}
//now create the separate arrays for different ambiguities.
/**
*

View File

@ -31,12 +31,12 @@ public class PamguardVersionInfo {
* Version number, major version.minorversion.sub-release.
* Note: can't go higher than sub-release 'f'
*/
static public final String version = "2.02.08";
static public final String version = "2.02.08a";
/**
* Release date
*/
static public final String date = "9 May 2023";
static public final String date = "30 May 2023";
// /**
// * Release type - Beta or Core

View File

@ -1,5 +1,6 @@
package PamController.settings;
import java.io.ByteArrayInputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
@ -14,6 +15,7 @@ import PamController.PamController;
import PamController.PamSettingManager;
import PamController.PamSettings;
import PamController.PamSettingsGroup;
import PamModel.PamModel;
import PamModel.PamModuleInfo;
import PamModel.SMRUEnable;
import PamView.dialog.PamFileBrowser;
@ -226,7 +228,13 @@ public class SettingsImport {
ownerClass = Class.forName(aSet.getOwnerClassName());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// e.printStackTrace();
// this is happening since the ownerclassname is not set correctly in psfx files
// so we have to deserialise the data to find the class.
// ownerClass = getClassFromData(aSet.getSerialisedByteArray());
// ownerClass = PamModuleInfo.findModuleClass(aSet.getUnitType());
}
if (ownerClass == null) {
continue;
}
if (PamControlledUnit.class.isAssignableFrom(ownerClass)) {
@ -264,6 +272,17 @@ public class SettingsImport {
return groupedSettings;
}
private Class getClassFromData(byte[] data) {
try {
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(data));
Object obj = ois.readObject();
return obj.getClass();
} catch (Exception e) {
return null;
}
}
private SettingsImportGroup findGroup(ArrayList<SettingsImportGroup> groupedSettings, String unitName) {
for (SettingsImportGroup iG:groupedSettings) {
if (iG.getMainSettings().getUnitName().equals(unitName)) {

View File

@ -45,14 +45,10 @@ import fftManager.FFTDataUnit;
import fftManager.PamFFTControl;
import group3dlocaliser.Group3DLocaliserControl;
import meygenturbine.MeygenTurbine;
import networkTransfer.receive.BuoyStatusDataUnit;
import networkTransfer.receive.NetworkReceiver;
import printscreen.PrintScreenControl;
import rockBlock.RockBlockControl;
import turbineops.TurbineOperationControl;
import GPS.GpsDataUnit;
import Map.MapController;
import Map.gridbaselayer.GridbaseControl;
import NMEA.NMEADataUnit;
import PamController.PamControlledUnitSettings;
import PamController.PamController;
@ -66,7 +62,6 @@ import PamguardMVC.PamDataBlock;
import analogarraysensor.ArraySensorControl;
import backupmanager.BackupManager;
import beamformer.continuous.BeamFormerControl;
import beamformer.localiser.BeamFormLocaliserControl;
import bearinglocaliser.BearingLocaliserControl;
import binaryFileStorage.SecondaryBinaryStore;
import cepstrum.CepstrumControl;
@ -1083,7 +1078,6 @@ final public class PamModel implements PamModelInterface, PamSettings {
* PamModel !
*/
// Load up whatever default classloader was used to create this class. Must use the same classloader
// for all plugins, or else we will not be able to create proper dependencies between them or be able
// to save properties in the psf file. Found this problem because ipiDemo requires the
@ -1150,30 +1144,11 @@ final public class PamModel implements PamModelInterface, PamSettings {
// to add that URL to the default classloader path.
URL newURL = jarList.get(i).toURI().toURL();
// original method
// Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
// method.setAccessible(true);
// method.invoke(cl, newURL);
// first fix attempt - create a brand new URLClassLoader. As expected, we get a ClassCastException when trying
// to load the parameters so we can't save params using this method
// URL[] newURLArray = new URL[1];
// newURLArray[0] = newURL;
// cl = new URLClassLoader(newURLArray);
// second attempt - custom class loader with the system app loader specified as the parent. Loads controlled unit, but
// as before it doesn't load the parameters
classLoader.addURL(newURL);
// third attempt
// Class<?> genericClass = cl.getClass();
// Method method = genericClass.getSuperclass().getDeclaredMethod("addURL", new Class[] {URL.class});
// method.setAccessible(true);
// method.invoke(cl, new Object[] {newURL});
// Save the name of the class to the global pluginBeingLoaded variable, and load the class.
this.setPluginBeingLoaded(className);
// Class c = cl.loadClass(className);
@ -1254,9 +1229,8 @@ final public class PamModel implements PamModelInterface, PamSettings {
"for help.<p>" +
"This plug-in will not be available for loading";
String help = null;
int ans = WarnOnce.showWarning(PamController.getMainFrame(), title, msg, WarnOnce.WARNING_MESSAGE, help, e1);
int ans = WarnOnce.showWarning(PamController.getInstance().getGuiFrameManager().getFrame(0), title, msg, WarnOnce.WARNING_MESSAGE, help, e1);
System.err.println("Exception while loading " + className);
System.err.println(e1.getMessage());
continue;
}
}
@ -1269,7 +1243,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
"for help.<p>" +
"This plug-in will not be available for loading";
String help = null;
int ans = WarnOnce.showWarning(PamController.getMainFrame(), title, msg, WarnOnce.WARNING_MESSAGE, help, ex);
int ans = WarnOnce.showWarning(PamController.getInstance().getGuiFrameManager().getFrame(0), title, msg, WarnOnce.WARNING_MESSAGE, help, ex);
System.err.println("Exception while loading " + jarList.get(i).getName());
continue;
}
@ -1294,7 +1268,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
// instantiate the plugin control class using the custom class loader
try {
File classFile = new File(pf.getJarFile());
// File classFile = new File(pf.getJarFile());
//URLClassLoader cl = new URLClassLoader(new URL[]{classFile.toURI().toURL()});
// mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),cl);
mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),classLoader);
@ -1360,7 +1334,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
"for help.<p>" +
"This plug-in will not be available for loading";
String help = null;
int ans = WarnOnce.showWarning(PamController.getMainFrame(), title, msg, WarnOnce.WARNING_MESSAGE, help, e1);
int ans = WarnOnce.showWarning(PamController.getInstance().getGuiFrameManager().getFrame(0), title, msg, WarnOnce.WARNING_MESSAGE, help, e1);
System.err.println("Exception while loading " + pf.getDefaultName());
pluginList.remove(pf);
continue;

View File

@ -283,6 +283,7 @@ public class PamModuleInfo implements PamDependent{
}
public static JMenu getModulesMenu(Frame parentFrame) {
ArrayList<ModulesMenuGroup> moduleGroupsList = new ArrayList<ModulesMenuGroup>();

View File

@ -173,6 +173,9 @@ public class GroupLocSettingPaneFX extends SettingsPane<Group3DParams>{
algoOptsButton.setDisable(true);
return;
}
// also enable / disable the more options button ...
algoOptsButton.setDisable(localiserAlgorithm.hasParams() == false);
/**
* Need to immediately tell the algorithm which input we're using so that it can
* show the correct settings...
@ -209,9 +212,6 @@ public class GroupLocSettingPaneFX extends SettingsPane<Group3DParams>{
}
algorithmSourcePane = newPane;
// also enable / disable the more options button ...
algoOptsButton.setDisable(localiserAlgorithm.hasParams() == false);
repackDialog();
}

View File

@ -36,7 +36,10 @@ From the Detection Menu, select <strong><em>GPS>GPS Options</em></strong>
<p>
On very rare occasions, if the GPS data have been multiplexed through some other instruments, the first
two characters of the string identifier are changed. If this is the case, it may also be necessary to set these
so that the GPS module can identify the appropriate data.
so that the GPS module can identify the appropriate data. As an alternative, select the "Allow and string initials" option
which will use any valid RMC or GGA string. Note however, that with a complex NMEA system there may be more than one GPS and
it is better to select only strings from the most accurate</p>
<h3>Read Options</h3>
<p>Three options for reading and storing GPS data are available.</p>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB