mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2025-02-16 09:12:25 +00:00
commit
68b2f3bb53
274
README.html
274
README.html
@ -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
|
which mostly occurred when processing large datasets of many offline files, has
|
||||||
been fixed.</span></p>
|
been fixed.</span></p>
|
||||||
|
|
||||||
|
<p class=MsoNormal><span lang=EN-US>Data Map: “Scroll To Data” pop-up menu,
|
||||||
|
which didn’t 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>
|
<h2><span lang=EN-US>New Features</span></h2>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Restart Options: When you restart
|
<p class=MsoNormal><span lang=EN-US>Restart Options: When you restart
|
||||||
processing of offline files, if output data already exist (binary data of
|
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,
|
within database tables) you will be asked if you want to overwrite the data,
|
||||||
or try to continue from where to left off. </span></p>
|
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
|
<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
|
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
|
files and stores them within the PAMGuard configuration. This does not affect
|
||||||
processing, but is important for record keeping. </span></p>
|
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>
|
<h1><span lang=EN-US>Version 2.02.07 January 2023</span></h1>
|
||||||
|
|
||||||
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation
|
<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’
|
data for static hydrophones had a bug whereby it would continually ‘forget’ angle
|
||||||
angle offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
|
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
|
<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>
|
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>
|
mode. Now fixed. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>ROCCA: Fixed (another) memory leak which
|
<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.
|
caused PAMGuard to crash when processing large data sets with the ROCCA
|
||||||
</span></p>
|
classifier. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Ishmael Modules: Fixed bug which
|
<p class=MsoNormal><span lang=EN-US>Ishmael Modules: Fixed bug which
|
||||||
occasionally caused crashes when processing many files offline. </span></p>
|
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
|
|||||||
you’d expect sound from higher frequency baleen whales, such as humpbacks, to
|
you’d expect sound from higher frequency baleen whales, such as humpbacks, to
|
||||||
vocalise at. </span></p>
|
vocalise at. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to
|
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to permanently
|
||||||
permanently turn off all tool tips, or tap the ‘Esc’ key to turn them off for 6
|
turn off all tool tips, or tap the ‘Esc’ key to turn them off for 6 seconds if
|
||||||
seconds if they are getting in the way, particularly when trying to interact
|
they are getting in the way, particularly when trying to interact with displays
|
||||||
with displays using the mouse. </span></p>
|
using the mouse. </span></p>
|
||||||
|
|
||||||
<h1><span lang=EN-US>Version 2.02.06 November 2022</span></h1>
|
<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
|
SoundTrap autonomous recorders from Ocean Instruments, you no longer need to
|
||||||
decompress the SoundTrap files prior to processing. This will save time and a
|
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
|
lot of disk space. Extraction of clicks from the inbuilt SoundTrap Click
|
||||||
detector can also happen while processing SUD file data with other detectors,
|
detector can also happen while processing SUD file data with other detectors, thereby
|
||||||
thereby streamlining the whole processing chain. Read the online Help for
|
streamlining the whole processing chain. Read the online Help for details.
|
||||||
details. </span></p>
|
</span></p>
|
||||||
|
|
||||||
<h1><span lang=EN-US>Version 2.02.05 October 2022</span></h1>
|
<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 2.00.10</a> before proceeding with installation and use of this
|
||||||
version.</b></p>
|
version.</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 16
|
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 16 (OpenJDK
|
||||||
(OpenJDK release), so you will not need to install a java runtime engine
|
release), so you will not need to install a java runtime engine separately.
|
||||||
separately. PSFX files generated in previous beta releases (2.xx.xx) should be
|
PSFX files generated in previous beta releases (2.xx.xx) should be compatible
|
||||||
compatible with this version, and vice-versa. PSF files generated in core
|
with this version, and vice-versa. PSF files generated in core releases
|
||||||
releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
|
(1.15.xx) can be loaded in this version, but will be converted to PSFX files
|
||||||
files when PAMGuard exits.</p>
|
when PAMGuard exits.</p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-bottom:0cm'><span style='font-size:12.0pt;
|
<p class=MsoNormal style='margin-bottom:0cm'><span style='font-size:12.0pt;
|
||||||
font-family:"Times New Roman",serif'> </span></p>
|
font-family:"Times New Roman",serif'> </span></p>
|
||||||
@ -723,8 +739,8 @@ params </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
<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'> </span>Bug
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>Bug
|
||||||
492. Data Model does not update button//tooltip text when underlying
|
492. Data Model does not update button//tooltip text when underlying data
|
||||||
data changes </p>
|
changes </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<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'> </span>Bug
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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>
|
off the side of whistles </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>13. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Extend the Hyperbolic Localiser to handle 2D planar arrays (previously limited
|
lang=EN-US> </span>Extend the Hyperbolic Localiser to handle 2D planar arrays
|
||||||
to 3D volumetric arrays) </p>
|
(previously limited to 3D volumetric arrays) </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>14. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
Noise Level Outputs - as an aid to performance diagnosis, some detectors
|
Noise Level Outputs - as an aid to performance diagnosis, some detectors
|
||||||
(currently the GPL, Click Detector and Whistle and Moan Detector) are outputting
|
(currently the GPL, Click Detector and Whistle and Moan Detector) are
|
||||||
additional noise metrics to their binary output files. These can be read with
|
outputting additional noise metrics to their binary output files. These can be
|
||||||
the <a href="https://sourceforge.net/projects/pamguard/files/Matlab/">PAMGuard
|
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
|
Matlab library</a> and used to diagnose system performance in varying noise
|
||||||
conditions. Improved displays within PAMGuard for these noise metrics will be
|
conditions. Improved displays within PAMGuard for these noise metrics will be
|
||||||
included in a future release. </p>
|
included in a future release. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>17. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
An implementation of the Generalized Power Law Detector, developed by Tyler
|
lang=EN-US> </span>An implementation of the Generalized Power Law Detector,
|
||||||
Helble ([Helble et al., ‘A generalized power-law detection algorithm for humpback
|
developed by Tyler Helble ([Helble et al., ‘A generalized power-law
|
||||||
whale vocalizations’, The Journal of the Acoustical Society of America, vol.
|
detection algorithm for humpback whale vocalizations’, The Journal of the
|
||||||
131, no. 4, pp. 2682–2699, 2012) is now available. For details, see the
|
Acoustical Society of America, vol. 131, no. 4, pp. 2682–2699, 2012) is now
|
||||||
online help </p>
|
available. For details, see the online help </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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 2.00.10</a> before proceeding with installation and use of this
|
||||||
version.</b></p>
|
version.</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
|
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13 (release
|
||||||
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
|
13.0.1). PSFX files generated in previous beta releases (2.xx.xx) should be
|
||||||
should be compatible with this version, and vice-versa. PSF files generated in
|
compatible with this version, and vice-versa. PSF files generated in core
|
||||||
core releases (1.15.xx) can be loaded in this version, but will be converted to
|
releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
|
||||||
PSFX files when PAMGuard exits.</p>
|
files when PAMGuard exits.</p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Bug Fixes</span></b></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'> &nb
|
|||||||
lang=EN-US> </span>Better auto-scaling in Ishmael Detector graphics window. </p>
|
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
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Change to Windows temporary folder location, to get around Windows Security
|
lang=EN-US> </span>Change to Windows temporary folder location, to get around Windows
|
||||||
settings that were preventing some modules from working properly. </p>
|
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'> &nb
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>8. </span><span
|
<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'> </span>Bug
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>Bug
|
||||||
460. Click Detector BT Display vertical axis shows all zeroes when
|
460. Click Detector BT Display vertical axis shows all zeroes when zooming
|
||||||
zooming out </p>
|
out </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
|
<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'> </span>Bug
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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>
|
causing PAMGuard to crash without error message.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Bug 437. Right whale detector crashing if no input was set.</p>
|
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
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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
|
<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'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
lang=EN-US> </span>Add option to the Map module's Plot Overlay Options dialog,
|
lang=EN-US> </span>Add option to the Map module's Plot Overlay Options dialog, to
|
||||||
to show events occuring in the future (<em><span style='font-family:"Calibri",sans-serif'>look
|
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
|
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
|
occurred. Can make it easier to match up the map with clicks seen in the Click
|
||||||
Detector display. </p>
|
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
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bugs 398 and 399. Click Detector, FFT Engine and Filter modules were
|
</span>Bugs 398 and 399. Click Detector, FFT Engine and Filter modules were losing
|
||||||
losing source during startup, if the source selected was not the first raw data
|
source during startup, if the source selected was not the first raw data source
|
||||||
source in the list.</p>
|
in the list.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -1721,10 +1737,10 @@ lang=EN-US> </span>Better way of coupling scrollers in User Display panels -
|
|||||||
see new options in main menu.</p>
|
see new options in main menu.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Added Matched Template Click Classifier. Classifies clicks based on an ideal
|
lang=EN-US> </span>Added Matched Template Click Classifier. Classifies clicks based
|
||||||
template to match and a template to reject. An example of this is to classify
|
on an ideal template to match and a template to reject. An example of this is
|
||||||
beaked whale clicks in an environment with dolphin clicks.</p>
|
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
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </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=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
|
<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'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
User is now able to specify Soundtrap date/time format</p>
|
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
|
<h1><a name="_Latest_Beta_Version_2.00.10"></a><span lang=EN-US>Beta Version
|
||||||
2.00.10 June 2017</span></h1>
|
2.00.10 June 2017</span></h1>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates.
|
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates. You
|
||||||
You should read and understand these notes before proceeding with installation
|
should read and understand these notes before proceeding with installation and
|
||||||
and use of this version. These changes have been funded under contract to NOAA
|
use of this version. These changes have been funded under contract to NOAA
|
||||||
Fisheries, contract no. WE-133F-16-SE-1126.</span></p>
|
Fisheries, contract no. WE-133F-16-SE-1126.</span></p>
|
||||||
|
|
||||||
<h3><span lang=EN-US>Binary File Structural Changes</span></h3>
|
<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
|
<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'>
|
lang=EN-US>2.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Display colour options will be lost and most data displayed
|
</span><span lang=EN-US>Display colour options will be lost and most data
|
||||||
on the map may default to black. This is due to the above changes to how
|
displayed on the map may default to black. This is due to the above changes to
|
||||||
colours are managed. Changing back to the colours of your choice is relatively
|
how colours are managed. Changing back to the colours of your choice is
|
||||||
simple through the PAMGuard GUI. </span></p>
|
relatively simple through the PAMGuard GUI. </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
|
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
|
||||||
lang=EN-US> </span></p>
|
lang=EN-US> </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
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data
|
</span><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data saying
|
||||||
saying what get's plotted on each map and for how long became corrupted and the
|
what get's plotted on each map and for how long became corrupted and the list
|
||||||
list grew to a ridiculous size. Code has been put in place to a) stop it
|
grew to a ridiculous size. Code has been put in place to a) stop it happening
|
||||||
happening again and b) to repair any configuration files which are corrupted.
|
again and b) to repair any configuration files which are corrupted. Corrupted
|
||||||
Corrupted files will be slow to load, slow to save and will be > several
|
files will be slow to load, slow to save and will be > several megabytes in
|
||||||
megabytes in size. It may be necessary to delete the PamguardSettings table in
|
size. It may be necessary to delete the PamguardSettings table in any databases
|
||||||
any databases since these too may have become oversized which will slow down
|
since these too may have become oversized which will slow down viewer mode
|
||||||
viewer mode PAMGuard start-up.</p>
|
PAMGuard start-up.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>When tracking online, all the click marking information
|
</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
|
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
|
analysis. This means than when reviewing data offline, the tracks created in
|
||||||
time are now available for review and further analysis. </span></p>
|
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
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2517,9 +2533,9 @@ the future. </span></p>
|
|||||||
|
|
||||||
<p class=MsoNormal><i>Logger Form Design</i></p>
|
<p class=MsoNormal><i>Logger Form Design</i></p>
|
||||||
|
|
||||||
<p class=MsoNormal>A GUI driven system for designing Logger forms has been
|
<p class=MsoNormal>A GUI driven system for designing Logger forms has been released.
|
||||||
released. Currently, this feature has no online help, but is reasonably
|
Currently, this feature has no online help, but is reasonably intuitive
|
||||||
intuitive compared to the old method of typing directly into the database. </p>
|
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>
|
<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
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Bug 253. Database import fails when Access database
|
</span><span lang=EN-US>Bug 253. Database import fails when Access database contains
|
||||||
contains queries. Fixed.</span></p>
|
queries. Fixed.</span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -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
|
<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'>
|
lang=EN-US>3.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Bug 248. Crash in hydrophone array manager. Bug in
|
</span><span lang=EN-US>Bug 248. Crash in hydrophone array manager. Bug in array
|
||||||
array manager would crash PAMGuard when the click detector was configured with
|
manager would crash PAMGuard when the click detector was configured with more
|
||||||
more channels than the sound acquisition system (almost impossible to achieve,
|
channels than the sound acquisition system (almost impossible to achieve, but
|
||||||
but someone managed it). </span></p>
|
someone managed it). </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
<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'>
|
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2897,8 +2913,8 @@ writing results files. Fixed. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
<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'>
|
lang=EN-US>7.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 237. Logger forms not saving data to database after sound
|
</span>Bug 237. Logger forms not saving data to database after sound acquisition
|
||||||
acquisition starts. Fixed. </p>
|
starts. Fixed. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>8.<span
|
<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'>
|
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -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'>
|
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>The sound File and Folder audio input systems now have an optional time
|
</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
|
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
|
UTC and that this option is intended to allow the conversion of file times which
|
||||||
which were not recorded as UTC into UTC and not the other way around. Use the
|
were not recorded as UTC into UTC and not the other way around. Use the option
|
||||||
option with caution !</p>
|
with caution !</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
<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'>
|
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>The Open Office Database system has been removed from the list of
|
</span>The Open Office Database system has been removed from the list of available
|
||||||
available options since it is not reliable. If you require a free database
|
options since it is not reliable. If you require a free database solution we
|
||||||
solution we recommend you use the MySql Community Server <a
|
recommend you use the MySql Community Server <a
|
||||||
href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></p>
|
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
|
<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><i>Wild ArcGIS Interface</i> (Maps and Mapping group)</p>
|
||||||
|
|
||||||
<p class=MsoNormal>This module, developed by Michael Oswald / SWFSC, allows
|
<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
|
PAMGuard to output data in a format suitable for display in the WILD ArcGIS
|
||||||
mammal survey package. See online help for details. </p>
|
marine mammal survey package. See online help for details. </p>
|
||||||
|
|
||||||
<p class=MsoNormal><i>Alarms</i> (Utilities Group)</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'><i>Database</i></p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary
|
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary storage
|
||||||
storage to the database offline for any module having both binary and database
|
to the database offline for any module having both binary and database storage.
|
||||||
storage. </p>
|
</p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-left:36.0pt'>Can create a blank MS Access
|
<p class=MsoNormal style='margin-left:36.0pt'>Can create a blank MS Access
|
||||||
database (2007 and later *.accdb formats only).</p>
|
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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Radar Display: A bug which stopped the radar display from correctly displaying
|
</span>Radar Display: A bug which stopped the radar display from correctly
|
||||||
bearings to whistles from arrays containing more than two hydrophone elements
|
displaying bearings to whistles from arrays containing more than two hydrophone
|
||||||
has been fixed. </p>
|
elements has been fixed. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -3533,8 +3549,8 @@ start-up.</p>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug in Noise Monitor. Version 1.11.01 would crash if only a subset of
|
</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
|
channels were selected, e.g. if you only measured noise on channel 0 of a two channel
|
||||||
channel configuration. This bug is now fixed</p>
|
configuration. This bug is now fixed</p>
|
||||||
|
|
||||||
<h2>Version 1.11.01 Beta April 2012</h2>
|
<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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bearings can be calculated using the envelope of the waveform rather than
|
</span>Bearings can be calculated using the envelope of the waveform rather
|
||||||
the full waveform. The waveform or envelope can also be filtered prior to
|
than the full waveform. The waveform or envelope can also be filtered prior to
|
||||||
bearing calculation.</p>
|
bearing calculation.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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><b>Bug fixes</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>1. Placement of axes on some displays (array manager and depth
|
<p class=MsoNormal>1. Placement of axes on some displays (array manager and
|
||||||
side panel). Problem in 1.9.01 Beta now fixed. </p>
|
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
|
<p class=MsoNormal>2. Fixed problems of NMEA read out not restarting after a
|
||||||
serial drop out. NMEA now restarts correctly. </p>
|
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
|
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
|
modules which resulted in a number of bugs which could cause confusion as to
|
||||||
which hydrophones were being used during localisation or during calibrated
|
which hydrophones were being used during localisation or during calibrated
|
||||||
measurement. The situation tended to only arise with a small number of ASIO
|
measurement. The situation tended to only arise with a small number of ASIO sound
|
||||||
sound cards such as the RME Fireface 400 on which the most useful inputs, the
|
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
|
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
|
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
|
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
|
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
|
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
|
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. The
|
dialog, you will see them listed as channels 0,1,2 and 3. The consequences
|
||||||
consequences of doing this are mainly very good. Most users will not notice any
|
of doing this are mainly very good. Most users will not notice any changes. For
|
||||||
changes. For those who need for some reason to read channel numbers not
|
those who need for some reason to read channel numbers not starting at zero
|
||||||
starting at zero things will be more stable. However, when you go to a new
|
things will be more stable. However, when you go to a new version with this new
|
||||||
version with this new feature, it will be necessary to reconfigure all the
|
feature, it will be necessary to reconfigure all the modules in any existing
|
||||||
modules in any existing configurations. To do this, open the configuration
|
configurations. To do this, open the configuration dialog for each module in
|
||||||
dialog for each module in turn and select the correct, zero indexed, channel
|
turn and select the correct, zero indexed, channel number. </p>
|
||||||
number. </p>
|
|
||||||
|
|
||||||
<p class=MsoNormal><b>Other Changes / new features</b></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>Sound acquisition</p>
|
||||||
|
|
||||||
<p class=MsoNormal>Changes made for a previous Mac build now incorporated into
|
<p class=MsoNormal>Changes made for a previous Mac build now incorporated into main
|
||||||
main Beta branch. This should allow for basic 2 channel sound acquisition using
|
Beta branch. This should allow for basic 2 channel sound acquisition using
|
||||||
Macs. </p>
|
Macs. </p>
|
||||||
|
|
||||||
<p class=MsoNormal>Bug Fixes</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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Wigner time-frequency plot for the click detector. Clicks are NOT automatically
|
</span>Wigner time-frequency plot for the click detector. Clicks are NOT
|
||||||
displayed in the Winger window as they are for the waveform and spectrum
|
automatically displayed in the Winger window as they are for the waveform and
|
||||||
windows since the Wigner transformation is very time consuming. Clicks will be
|
spectrum windows since the Wigner transformation is very time consuming. Clicks
|
||||||
displayed if you select them with the mouse.</p>
|
will be displayed if you select them with the mouse.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -4091,9 +4106,8 @@ methods used in PAMGUARD</p>
|
|||||||
|
|
||||||
<p class=MsoNormal><b>New Modules</b></p>
|
<p class=MsoNormal><b>New Modules</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>Two new modules are packaged. These are still in the final
|
<p class=MsoNormal>Two new modules are packaged. These are still in the final stages
|
||||||
stages of development. Feedback is most welcome. See online help for further
|
of development. Feedback is most welcome. See online help for further details. </p>
|
||||||
details. </p>
|
|
||||||
|
|
||||||
<p class=MsoNormal>Whistle and Moan Detector</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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Channel lists in output data streams of Decimator and other modules fixed,
|
</span>Channel lists in output data streams of Decimator and other modules
|
||||||
so that when channel numbers change, downstream modules configurations get the
|
fixed, so that when channel numbers change, downstream modules configurations
|
||||||
correct list of available channels. </p>
|
get the correct list of available channels. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -4334,8 +4348,8 @@ acquisition. </p>
|
|||||||
|
|
||||||
<p class=MsoNormal><b>Bug fixes</b></p>
|
<p class=MsoNormal><b>Bug fixes</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>Speed up of graphics, particularly regarding large
|
<p class=MsoNormal>Speed up of graphics, particularly regarding large quantities
|
||||||
quantities of gps track data</p>
|
of gps track data</p>
|
||||||
|
|
||||||
<p class=MsoNormal>National Instruments cards with names > 20 characters
|
<p class=MsoNormal>National Instruments cards with names > 20 characters
|
||||||
long are now correctly recognised. </p>
|
long are now correctly 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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Multi animal click tracking with least squares fit calculation of position
|
</span>Multi animal click tracking with least squares fit calculation of
|
||||||
on map</p>
|
position on map</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
|
@ -104,9 +104,13 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
boolean ans = super.prepareInputFile();
|
boolean ans = super.prepareInputFile();
|
||||||
if (ans == false && ++currentFile < allFiles.size()) {
|
if (ans == false && ++currentFile < allFiles.size()) {
|
||||||
System.out.println("Failed to open sound file. Try again with file " + allFiles.get(currentFile).getName());
|
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().pamStop();
|
||||||
PamController.getInstance().startLater();
|
PamController.getInstance().startLater(false);
|
||||||
}
|
}
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
@ -614,16 +618,16 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
long currFileEnd = 0;
|
long currFileEnd = 0;
|
||||||
if (currentFile >= 0) {
|
if (currentFile >= 0) {
|
||||||
try {
|
try {
|
||||||
WavFileType currentWav = allFiles.get(currentFile);
|
WavFileType currentWav = allFiles.get(currentFile);
|
||||||
currFileStart = getFileStartTime(currentWav.getAbsoluteFile());
|
currFileStart = getFileStartTime(currentWav.getAbsoluteFile());
|
||||||
if (audioStream != null) {
|
if (audioStream != null) {
|
||||||
fileSamples = audioStream.getFrameLength();
|
fileSamples = audioStream.getFrameLength();
|
||||||
currFileLength = (long) (fileSamples * 1000 / audioStream.getFormat().getFrameRate());
|
currFileLength = (long) (fileSamples * 1000 / audioStream.getFormat().getFrameRate());
|
||||||
currFileEnd = currFileStart + currFileLength;
|
currFileEnd = currFileStart + currFileLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (currFileEnd == 0) {
|
if (currFileEnd == 0) {
|
||||||
@ -648,7 +652,17 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
}
|
}
|
||||||
setFolderProgress();
|
setFolderProgress();
|
||||||
// sayEta();
|
// 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();
|
currentFileStart = System.currentTimeMillis();
|
||||||
// if (ans && audioFormat.getSampleRate() != currentSampleRate && currentFile > 0) {
|
// if (ans && audioFormat.getSampleRate() != currentSampleRate && currentFile > 0) {
|
||||||
// acquisitionControl.getDaqProcess().setSampleRate(currentSampleRate = audioFormat.getSampleRate(), true);
|
// acquisitionControl.getDaqProcess().setSampleRate(currentSampleRate = audioFormat.getSampleRate(), true);
|
||||||
|
@ -22,7 +22,7 @@ public class SUDFileType extends SoundFileType {
|
|||||||
if (isShown) {
|
if (isShown) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WarnOnce.showWarning("SoundTrap SUD Files", sudInfoText, WarnOnce.OK_OPTION);
|
// WarnOnce.showWarning("SoundTrap SUD Files", sudInfoText, WarnOnce.OK_OPTION);
|
||||||
isShown = true;
|
isShown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ public class SudAudioFile extends WavAudioFile {
|
|||||||
}
|
}
|
||||||
// don't do anything and it will try the built in Audiosystem
|
// don't do anything and it will try the built in Audiosystem
|
||||||
catch (UnsupportedAudioFileException e) {
|
catch (UnsupportedAudioFileException e) {
|
||||||
System.err.println("Could not open sud file: not a supported file " + soundFile.getName());
|
System.err.println("UnsupportedAudioFileException: Could not open sud file: not a supported file " + soundFile.getName());
|
||||||
|
System.err.println(e.getMessage());
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
|
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
|
||||||
|
|
||||||
|
@ -46,7 +46,8 @@ public class SudAudioFileReader {
|
|||||||
try {
|
try {
|
||||||
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
String msg = String.format("Corrupt sud file %s: %s", file.getName(), e.getMessage());
|
||||||
|
throw new UnsupportedAudioFileException(msg);
|
||||||
}
|
}
|
||||||
return sudAudioInputStream;
|
return sudAudioInputStream;
|
||||||
}
|
}
|
||||||
|
@ -245,6 +245,31 @@ public class GPSControl extends PamControlledUnit implements PamSettings, Positi
|
|||||||
public GpsDataUnit getShipPosition(long timeMilliseconds) {
|
public GpsDataUnit getShipPosition(long timeMilliseconds) {
|
||||||
return getGpsDataBlock().getClosestUnitMillis(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.
|
* Get the name of the string we're wanting.
|
||||||
|
@ -59,6 +59,8 @@ public class GPSParameters implements Serializable, Cloneable, ManagedParameters
|
|||||||
public String rmcInitials = "GP";
|
public String rmcInitials = "GP";
|
||||||
public String ggaInitials = "GP";
|
public String ggaInitials = "GP";
|
||||||
|
|
||||||
|
public boolean allowWildcard = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempt to read true heading information
|
* Attempt to read true heading information
|
||||||
*/
|
*/
|
||||||
|
@ -149,9 +149,9 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static GPSParameters showDialog(Frame parentFrame, GPSParameters gpsParameters) {
|
public static GPSParameters showDialog(Frame parentFrame, GPSParameters gpsParameters) {
|
||||||
if (parentFrame != lastFrame || gpsParametersDialog == null) {
|
// if (parentFrame != lastFrame || gpsParametersDialog == null) {
|
||||||
gpsParametersDialog = new GPSParametersDialog(parentFrame);
|
gpsParametersDialog = new GPSParametersDialog(parentFrame);
|
||||||
}
|
// }
|
||||||
gpsParametersDialog.gpsParameters = gpsParameters.clone();
|
gpsParametersDialog.gpsParameters = gpsParameters.clone();
|
||||||
gpsParametersDialog.setParams();
|
gpsParametersDialog.setParams();
|
||||||
gpsParametersDialog.setVisible(true);
|
gpsParametersDialog.setVisible(true);
|
||||||
@ -335,6 +335,7 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
JRadioButton ggaString;
|
JRadioButton ggaString;
|
||||||
JTextField rmcInitials;
|
JTextField rmcInitials;
|
||||||
JTextField ggaInitials;
|
JTextField ggaInitials;
|
||||||
|
JCheckBox allowWildcard;
|
||||||
public MainStringPanel() {
|
public MainStringPanel() {
|
||||||
super();
|
super();
|
||||||
setBorder(new TitledBorder("Main Nav' data string"));
|
setBorder(new TitledBorder("Main Nav' data string"));
|
||||||
@ -344,9 +345,17 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
c.fill = GridBagConstraints.HORIZONTAL;
|
c.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
|
||||||
ButtonGroup buttonGroup = new ButtonGroup();
|
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);
|
addComponent(this, new JLabel("RMC String"), c);
|
||||||
c.gridx++;
|
c.gridx ++;
|
||||||
addComponent(this, rmcString = new JRadioButton(""), c);
|
addComponent(this, rmcString = new JRadioButton(""), c);
|
||||||
c.gridx++;
|
c.gridx++;
|
||||||
addComponent(this, rmcInitials = new JTextField(2), c);
|
addComponent(this, rmcInitials = new JTextField(2), c);
|
||||||
@ -355,6 +364,7 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
|
|
||||||
c.gridx = 0;
|
c.gridx = 0;
|
||||||
c.gridy ++;
|
c.gridy ++;
|
||||||
|
c.gridwidth = 1;
|
||||||
addComponent(this, new JLabel("GGA String"), c);
|
addComponent(this, new JLabel("GGA String"), c);
|
||||||
c.gridx++;
|
c.gridx++;
|
||||||
addComponent(this, ggaString = new JRadioButton(""), c);
|
addComponent(this, ggaString = new JRadioButton(""), c);
|
||||||
@ -363,6 +373,7 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
c.gridx++;
|
c.gridx++;
|
||||||
addComponent(this, new JLabel(" GGA"), c);
|
addComponent(this, new JLabel(" GGA"), c);
|
||||||
|
|
||||||
|
allowWildcard.addActionListener(this);
|
||||||
rmcString.addActionListener(this);
|
rmcString.addActionListener(this);
|
||||||
ggaString.addActionListener(this);
|
ggaString.addActionListener(this);
|
||||||
buttonGroup.add(rmcString);
|
buttonGroup.add(rmcString);
|
||||||
@ -374,10 +385,12 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
ggaString.setSelected(gpsParameters.mainString == GPSParameters.READ_GGA);
|
ggaString.setSelected(gpsParameters.mainString == GPSParameters.READ_GGA);
|
||||||
rmcInitials.setText(gpsParameters.rmcInitials);
|
rmcInitials.setText(gpsParameters.rmcInitials);
|
||||||
ggaInitials.setText(gpsParameters.ggaInitials);
|
ggaInitials.setText(gpsParameters.ggaInitials);
|
||||||
|
allowWildcard.setSelected(gpsParameters.allowWildcard);
|
||||||
enableControls();
|
enableControls();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getParams() {
|
public boolean getParams() {
|
||||||
|
gpsParameters.allowWildcard = allowWildcard.isSelected();
|
||||||
if (ggaString.isSelected()) {
|
if (ggaString.isSelected()) {
|
||||||
gpsParameters.mainString = GPSParameters.READ_GGA;
|
gpsParameters.mainString = GPSParameters.READ_GGA;
|
||||||
}
|
}
|
||||||
@ -385,12 +398,12 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
gpsParameters.mainString = GPSParameters.READ_RMC;
|
gpsParameters.mainString = GPSParameters.READ_RMC;
|
||||||
}
|
}
|
||||||
gpsParameters.rmcInitials = rmcInitials.getText();
|
gpsParameters.rmcInitials = rmcInitials.getText();
|
||||||
if (gpsParameters.rmcInitials.length() != 2) {
|
if (gpsParameters.rmcInitials.length() != 2 && !gpsParameters.allowWildcard) {
|
||||||
return false;
|
return showWarning("Expecting a two character identifier for RMC strings");
|
||||||
}
|
}
|
||||||
gpsParameters.ggaInitials = ggaInitials.getText();
|
gpsParameters.ggaInitials = ggaInitials.getText();
|
||||||
if (gpsParameters.ggaInitials.length() != 2) {
|
if (gpsParameters.ggaInitials.length() != 2 && !gpsParameters.allowWildcard) {
|
||||||
return false;
|
return showWarning("Expecting a two character identifier for GGA strings");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -400,8 +413,9 @@ public class GPSParametersDialog extends PamDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void enableControls() {
|
private void enableControls() {
|
||||||
rmcInitials.setEnabled(rmcString.isSelected());
|
boolean wild = allowWildcard.isSelected();
|
||||||
ggaInitials.setEnabled(ggaString.isSelected());
|
rmcInitials.setEnabled(rmcString.isSelected() & !wild);
|
||||||
|
ggaInitials.setEnabled(ggaString.isSelected() & !wild);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ public class ProcessNmeaData extends PamProcess {
|
|||||||
|
|
||||||
private GpsLogger gpsLogger;
|
private GpsLogger gpsLogger;
|
||||||
|
|
||||||
private String wantedString = "$GPRMC";
|
// private String wantedString = "$GPRMC";
|
||||||
|
|
||||||
private GpsDataUnit previousUnit = null;
|
private GpsDataUnit previousUnit = null;
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ public class ProcessNmeaData extends PamProcess {
|
|||||||
@Override
|
@Override
|
||||||
public void noteNewSettings() {
|
public void noteNewSettings() {
|
||||||
findNMEADataBlock();
|
findNMEADataBlock();
|
||||||
setWantedString();
|
// setWantedString();
|
||||||
double minRate = Math.max(.2, 1./gpsController.gpsParameters.readInterval);
|
double minRate = Math.max(.2, 1./gpsController.gpsParameters.readInterval);
|
||||||
processCheck.getOutputCounter().setMinRate(minRate);
|
processCheck.getOutputCounter().setMinRate(minRate);
|
||||||
}
|
}
|
||||||
@ -179,7 +179,8 @@ public class ProcessNmeaData extends PamProcess {
|
|||||||
StringBuffer nmeaString = nmeaData.getCharData();
|
StringBuffer nmeaString = nmeaData.getCharData();
|
||||||
String stringId = NMEADataBlock.getSubString(nmeaString, 0);
|
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
|
gpsData = new GpsData(nmeaString, gpsController.gpsParameters.mainString); // GpsData constructor which
|
||||||
// unpacks the string.
|
// unpacks the string.
|
||||||
if (gpsData.isDataOk()) {
|
if (gpsData.isDataOk()) {
|
||||||
@ -316,13 +317,13 @@ public class ProcessNmeaData extends PamProcess {
|
|||||||
super.clearOldData();
|
super.clearOldData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getWantedString() {
|
// public String getWantedString() {
|
||||||
return wantedString;
|
// return wantedString;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void setWantedString() {
|
// public void setWantedString() {
|
||||||
wantedString = gpsController.getWantedString();
|
// wantedString = gpsController.getWantedString();
|
||||||
}
|
// }
|
||||||
|
|
||||||
public GPSControl getGpsController() {
|
public GPSControl getGpsController() {
|
||||||
return gpsController;
|
return gpsController;
|
||||||
|
@ -221,9 +221,8 @@ public class UpdateClockDialog extends JDialog implements ActionListener, PamObs
|
|||||||
// NMEADataBlock nmeaDataBlock = (NMEADataBlock) o;
|
// NMEADataBlock nmeaDataBlock = (NMEADataBlock) o;
|
||||||
NMEADataUnit nmeaDataUnit = (NMEADataUnit) arg;
|
NMEADataUnit nmeaDataUnit = (NMEADataUnit) arg;
|
||||||
StringBuffer nmeaData = nmeaDataUnit.getCharData();
|
StringBuffer nmeaData = nmeaDataUnit.getCharData();
|
||||||
String wantedString = gpsControl.getWantedString();
|
|
||||||
String stringId = NMEADataBlock.getSubString(nmeaData, 0);
|
String stringId = NMEADataBlock.getSubString(nmeaData, 0);
|
||||||
if (wantedString.equals(stringId) == false) {
|
if (gpsControl.wantString(stringId) == false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (gpsControl.gpsParameters.mainString == GPSParameters.READ_GGA) {
|
if (gpsControl.gpsParameters.mainString == GPSParameters.READ_GGA) {
|
||||||
@ -232,6 +231,8 @@ public class UpdateClockDialog extends JDialog implements ActionListener, PamObs
|
|||||||
newRMCData(nmeaData);
|
newRMCData(nmeaData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateData(PamObservable observable, PamDataUnit pamDataUnit) {
|
public void updateData(PamObservable observable, PamDataUnit pamDataUnit) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
@ -810,6 +810,9 @@ public class TMGroupLocInfo implements GroupLocInfo {
|
|||||||
for (int i = 0; i < nSubDetections; i++) {
|
for (int i = 0; i < nSubDetections; i++) {
|
||||||
|
|
||||||
localisation = getParentDetection().getSubDetection(i).getLocalisation();
|
localisation = getParentDetection().getSubDetection(i).getLocalisation();
|
||||||
|
if (localisation == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
angles = localisation.getAngles();
|
angles = localisation.getAngles();
|
||||||
angleErrors = localisation.getAngleErrors();
|
angleErrors = localisation.getAngleErrors();
|
||||||
|
|
||||||
@ -879,6 +882,10 @@ public class TMGroupLocInfo implements GroupLocInfo {
|
|||||||
totalVectors += nVectors;
|
totalVectors += nVectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (totalVectors == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//now create the separate arrays for different ambiguities.
|
//now create the separate arrays for different ambiguities.
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -31,12 +31,12 @@ public class PamguardVersionInfo {
|
|||||||
* Version number, major version.minorversion.sub-release.
|
* Version number, major version.minorversion.sub-release.
|
||||||
* Note: can't go higher than sub-release 'f'
|
* 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
|
* Release date
|
||||||
*/
|
*/
|
||||||
static public final String date = "9 May 2023";
|
static public final String date = "30 May 2023";
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * Release type - Beta or Core
|
// * Release type - Beta or Core
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package PamController.settings;
|
package PamController.settings;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.EOFException;
|
import java.io.EOFException;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -14,6 +15,7 @@ import PamController.PamController;
|
|||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
import PamController.PamSettingsGroup;
|
import PamController.PamSettingsGroup;
|
||||||
|
import PamModel.PamModel;
|
||||||
import PamModel.PamModuleInfo;
|
import PamModel.PamModuleInfo;
|
||||||
import PamModel.SMRUEnable;
|
import PamModel.SMRUEnable;
|
||||||
import PamView.dialog.PamFileBrowser;
|
import PamView.dialog.PamFileBrowser;
|
||||||
@ -226,7 +228,13 @@ public class SettingsImport {
|
|||||||
ownerClass = Class.forName(aSet.getOwnerClassName());
|
ownerClass = Class.forName(aSet.getOwnerClassName());
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
// TODO Auto-generated catch block
|
// 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;
|
continue;
|
||||||
}
|
}
|
||||||
if (PamControlledUnit.class.isAssignableFrom(ownerClass)) {
|
if (PamControlledUnit.class.isAssignableFrom(ownerClass)) {
|
||||||
@ -263,6 +271,17 @@ public class SettingsImport {
|
|||||||
|
|
||||||
return groupedSettings;
|
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) {
|
private SettingsImportGroup findGroup(ArrayList<SettingsImportGroup> groupedSettings, String unitName) {
|
||||||
for (SettingsImportGroup iG:groupedSettings) {
|
for (SettingsImportGroup iG:groupedSettings) {
|
||||||
|
@ -45,14 +45,10 @@ import fftManager.FFTDataUnit;
|
|||||||
import fftManager.PamFFTControl;
|
import fftManager.PamFFTControl;
|
||||||
import group3dlocaliser.Group3DLocaliserControl;
|
import group3dlocaliser.Group3DLocaliserControl;
|
||||||
import meygenturbine.MeygenTurbine;
|
import meygenturbine.MeygenTurbine;
|
||||||
import networkTransfer.receive.BuoyStatusDataUnit;
|
|
||||||
import networkTransfer.receive.NetworkReceiver;
|
|
||||||
import printscreen.PrintScreenControl;
|
import printscreen.PrintScreenControl;
|
||||||
import rockBlock.RockBlockControl;
|
import rockBlock.RockBlockControl;
|
||||||
import turbineops.TurbineOperationControl;
|
import turbineops.TurbineOperationControl;
|
||||||
import GPS.GpsDataUnit;
|
import GPS.GpsDataUnit;
|
||||||
import Map.MapController;
|
|
||||||
import Map.gridbaselayer.GridbaseControl;
|
|
||||||
import NMEA.NMEADataUnit;
|
import NMEA.NMEADataUnit;
|
||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
@ -66,7 +62,6 @@ import PamguardMVC.PamDataBlock;
|
|||||||
import analogarraysensor.ArraySensorControl;
|
import analogarraysensor.ArraySensorControl;
|
||||||
import backupmanager.BackupManager;
|
import backupmanager.BackupManager;
|
||||||
import beamformer.continuous.BeamFormerControl;
|
import beamformer.continuous.BeamFormerControl;
|
||||||
import beamformer.localiser.BeamFormLocaliserControl;
|
|
||||||
import bearinglocaliser.BearingLocaliserControl;
|
import bearinglocaliser.BearingLocaliserControl;
|
||||||
import binaryFileStorage.SecondaryBinaryStore;
|
import binaryFileStorage.SecondaryBinaryStore;
|
||||||
import cepstrum.CepstrumControl;
|
import cepstrum.CepstrumControl;
|
||||||
@ -1067,7 +1062,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
// clear the current list
|
// clear the current list
|
||||||
pluginList.clear();
|
pluginList.clear();
|
||||||
daqList.clear();
|
daqList.clear();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If developing a new PAMPlugin in eclipse, the easiest way to do it is to make a new
|
* If developing a new PAMPlugin in eclipse, the easiest way to do it is to make a new
|
||||||
* Eclipse project for your plugin code. Within that project, copy this PamModel class
|
* Eclipse project for your plugin code. Within that project, copy this PamModel class
|
||||||
@ -1082,7 +1077,6 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
* When you export the code for your plugin to a jar file, remember to NOT inlcude the copy of
|
* When you export the code for your plugin to a jar file, remember to NOT inlcude the copy of
|
||||||
* PamModel !
|
* PamModel !
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
// Load up whatever default classloader was used to create this class. Must use the same classloader
|
// 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
|
// for all plugins, or else we will not be able to create proper dependencies between them or be able
|
||||||
@ -1150,30 +1144,11 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
// to add that URL to the default classloader path.
|
// to add that URL to the default classloader path.
|
||||||
URL newURL = jarList.get(i).toURI().toURL();
|
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
|
// 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
|
// as before it doesn't load the parameters
|
||||||
classLoader.addURL(newURL);
|
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.
|
// Save the name of the class to the global pluginBeingLoaded variable, and load the class.
|
||||||
this.setPluginBeingLoaded(className);
|
this.setPluginBeingLoaded(className);
|
||||||
// Class c = cl.loadClass(className);
|
// Class c = cl.loadClass(className);
|
||||||
@ -1254,9 +1229,8 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
"for help.<p>" +
|
"for help.<p>" +
|
||||||
"This plug-in will not be available for loading";
|
"This plug-in will not be available for loading";
|
||||||
String help = null;
|
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("Exception while loading " + className);
|
||||||
System.err.println(e1.getMessage());
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1269,7 +1243,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
"for help.<p>" +
|
"for help.<p>" +
|
||||||
"This plug-in will not be available for loading";
|
"This plug-in will not be available for loading";
|
||||||
String help = null;
|
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());
|
System.err.println("Exception while loading " + jarList.get(i).getName());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1294,7 +1268,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
|
|
||||||
// instantiate the plugin control class using the custom class loader
|
// instantiate the plugin control class using the custom class loader
|
||||||
try {
|
try {
|
||||||
File classFile = new File(pf.getJarFile());
|
// File classFile = new File(pf.getJarFile());
|
||||||
//URLClassLoader cl = new URLClassLoader(new URL[]{classFile.toURI().toURL()});
|
//URLClassLoader cl = new URLClassLoader(new URL[]{classFile.toURI().toURL()});
|
||||||
// mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),cl);
|
// mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),cl);
|
||||||
mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),classLoader);
|
mi = PamModuleInfo.registerControlledUnit(pf.getClassName(), pf.getDescription(),classLoader);
|
||||||
@ -1360,7 +1334,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
"for help.<p>" +
|
"for help.<p>" +
|
||||||
"This plug-in will not be available for loading";
|
"This plug-in will not be available for loading";
|
||||||
String help = null;
|
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());
|
System.err.println("Exception while loading " + pf.getDefaultName());
|
||||||
pluginList.remove(pf);
|
pluginList.remove(pf);
|
||||||
continue;
|
continue;
|
||||||
|
@ -282,6 +282,7 @@ public class PamModuleInfo implements PamDependent{
|
|||||||
return moduleClass;
|
return moduleClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static JMenu getModulesMenu(Frame parentFrame) {
|
public static JMenu getModulesMenu(Frame parentFrame) {
|
||||||
|
|
||||||
|
@ -173,6 +173,9 @@ public class GroupLocSettingPaneFX extends SettingsPane<Group3DParams>{
|
|||||||
algoOptsButton.setDisable(true);
|
algoOptsButton.setDisable(true);
|
||||||
return;
|
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
|
* Need to immediately tell the algorithm which input we're using so that it can
|
||||||
* show the correct settings...
|
* show the correct settings...
|
||||||
@ -208,10 +211,7 @@ public class GroupLocSettingPaneFX extends SettingsPane<Group3DParams>{
|
|||||||
// newPane.setDetectionSource(sourcePanel.getSource());
|
// newPane.setDetectionSource(sourcePanel.getSource());
|
||||||
}
|
}
|
||||||
algorithmSourcePane = newPane;
|
algorithmSourcePane = newPane;
|
||||||
|
|
||||||
// also enable / disable the more options button ...
|
|
||||||
algoOptsButton.setDisable(localiserAlgorithm.hasParams() == false);
|
|
||||||
|
|
||||||
|
|
||||||
repackDialog();
|
repackDialog();
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,10 @@ From the Detection Menu, select <strong><em>GPS>GPS Options</em></strong>
|
|||||||
<p>
|
<p>
|
||||||
On very rare occasions, if the GPS data have been multiplexed through some other instruments, the first
|
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
|
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>
|
<h3>Read Options</h3>
|
||||||
<p>Three options for reading and storing GPS data are available.</p>
|
<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 |
Loading…
Reference in New Issue
Block a user