This commit is contained in:
Douglas Gillespie 2022-11-11 20:59:10 +00:00
commit 4a75afc414
5 changed files with 72 additions and 18 deletions

View File

@ -368,8 +368,8 @@ should be something like:</p>
-Xms384m -Xmx4096m -Djava.library.path=lib64 -jar Pamguard_xxxxxx.jar</span></em></p> -Xms384m -Xmx4096m -Djava.library.path=lib64 -jar Pamguard_xxxxxx.jar</span></em></p>
<p class=MsoNormal>The -Xms384m -Xmx4096m specify the initial and maximum heap <p class=MsoNormal>The -Xms384m -Xmx4096m specify the initial and maximum heap
size for the JVM being used to run Pamguard i.e. how much memory it gets to size for the JVM being used to run Pamguard i.e. how much memory it gets to use.
use. The default max size usually being too low.</p> The default max size usually being too low.</p>
<p class=MsoNormal>The -Djava.library.path=lib64 tells the JVM that it should <p class=MsoNormal>The -Djava.library.path=lib64 tells the JVM that it should
look in the folder called &quot;lib64&quot; for the required shared libraries (change look in the folder called &quot;lib64&quot; for the required shared libraries (change
@ -381,8 +381,8 @@ a &quot;-m&quot; or &quot;-v&quot; to the list of java arguments. On Windows
just run the appropriately named executable (e.g. PamguardBeta_MixedMode.exe or just run the appropriately named executable (e.g. PamguardBeta_MixedMode.exe or
PamguardBeta_ViewerMode.exe):</p> PamguardBeta_ViewerMode.exe):</p>
<p class=MsoNormal><em><span style='font-family:"Calibri",sans-serif'>java -Xms384m <p class=MsoNormal><em><span style='font-family:"Calibri",sans-serif'>java
-Xmx4096m -Djava.library.path=lib64 -jar PamguardBeta_xxxxxx.jar -v</span></em></p> -Xms384m -Xmx4096m -Djava.library.path=lib64 -jar PamguardBeta_xxxxxx.jar -v</span></em></p>
<p class=MsoNormal><em><span style='font-family:"Calibri",sans-serif'>&nbsp;</span></em></p> <p class=MsoNormal><em><span style='font-family:"Calibri",sans-serif'>&nbsp;</span></em></p>
@ -452,9 +452,8 @@ lang=EN-US>Latest Version 2.02.05 October 2022</span></h1>
<p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for <p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for
low DPI screens. </span></p> low DPI screens. </span></p>
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification system system to have nested classifiers which can be enabled or disabled. </span></p>
to have nested classifiers which can be enabled or disabled. </span></p>
<p class=MsoNormal><span lang=EN-US>Changes to classification GUI to <p class=MsoNormal><span lang=EN-US>Changes to classification GUI to
accommodate the new classification system.</span></p> accommodate the new classification system.</span></p>
@ -535,7 +534,7 @@ running in real time. Added template names based on file names. </p>
<p class=MsoNormal>#13 Merging files when offline processing file folders: Had <p class=MsoNormal>#13 Merging files when offline processing file folders: Had
an error introduced in last release which caused it to fail to recognise gaps an error introduced in last release which caused it to fail to recognise gaps
between files, meaning that some output data (i.e. after a gap) would have an between files, meaning that some output data (i.e. after a gap) would have an
incorrect time stamp. This did not affect data if the ‘merge contiguous files’ incorrect time stamp. This did not affect data if the ‘merge contiguous files’
option was not selected. </p> option was not selected. </p>
<p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was <p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was
@ -609,7 +608,7 @@ href="http://www.pamguard.org/downloads.php?cat_id=3">here</a>.</p>
<p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span <p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span
lang=EN-US> </span></p> lang=EN-US> </span></p>
<p class=MsoNormal>This module has been renamed “Detection Grouper”, so as to <p class=MsoNormal>This module has been renamed “Detection Grouper”, so as to
avoid confusion with the Group 3D localizer. This is because the Detection avoid confusion with the Group 3D localizer. This is because the Detection
Grouper is more for organizing data into groups to be localized than it is for Grouper is more for organizing data into groups to be localized than it is for
doing localization.</p> doing localization.</p>
@ -730,9 +729,9 @@ 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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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 An implementation of the Generalized Power Law Detector, developed by Tyler
Helble ([Helble et al., ‘A generalized power-law detection algorithm for humpback Helble ([Helble et al., ‘A generalized power-law detection algorithm for humpback
whale vocalizations’, The Journal of the Acoustical Society of America, vol. 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 131, no. 4, pp. 2682–2699, 2012) is now available. For details, see the online
help </p> 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
@ -1996,7 +1995,7 @@ file format is the addition of a Unique Data Identifier (UID) to each unit of
data. This is intended to aid in offline analysis by making it easier for the data. This is intended to aid in offline analysis by making it easier for the
user to link what they are seeing on different PAMGuard displays and also to user to link what they are seeing on different PAMGuard displays and also to
link with any data post processed in Matlab or other custom analysis software. link with any data post processed in Matlab or other custom analysis software.
UID’s are also added to PAMGuard database tables. </span></p> UID’s are also added to PAMGuard database tables. </span></p>
<h4><span lang=EN-US>Converting Old Data</span></h4> <h4><span lang=EN-US>Converting Old Data</span></h4>
@ -2004,13 +2003,13 @@ UID’s are also added to PAMGuard database tables. </span></p>
viewer they will automatically be converted. For safety, the original binary viewer they will automatically be converted. For safety, the original binary
files will not be overwritten and the new data will be placed in a new folder files will not be overwritten and the new data will be placed in a new folder
on your computer with the same path as the old data, but suffixed with on your computer with the same path as the old data, but suffixed with
‘_WithUID’, e.g. if your binary data were previously stored in the folder ‘_WithUID’, e.g. if your binary data were previously stored in the folder
C:\MySurvey\binarydata the new data will be written to C:\MySurvey\binarydata the new data will be written to
C:\MySurvey\binarydata_WithUID. </span></p> C:\MySurvey\binarydata_WithUID. </span></p>
<p class=MsoNormal><span lang=EN-US>The additional UID column will be added to <p class=MsoNormal><span lang=EN-US>The additional UID column will be added to
all database tables and populated with unique values. For data which are stored all database tables and populated with unique values. For data which are stored
in both the binary files and in database tables, the same UID’s will be used in in both the binary files and in database tables, the same UID’s will be used in
both data stores. </span></p> both data stores. </span></p>
<h3><span lang=EN-US>New Displays</span></h3> <h3><span lang=EN-US>New Displays</span></h3>
@ -2245,7 +2244,7 @@ November 2016</span></h1>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard. Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard.
For the PAMGuard ASIO system, this was due to a data format used by some sound For the PAMGuard ASIO system, this was due to a data format used by some sound
cards never being properly implemented. For the “New ASIO system” which is cards never being properly implemented. For the “New ASIO system” which is
based on jAsioHost, the unpacking of that format contained a bug which returned based on jAsioHost, the unpacking of that format contained a bug which returned
incorrect numbers, so data were swamped with noise. Both systems are now fixed. incorrect numbers, so data were swamped with noise. Both systems are now fixed.
By preference, users should use the PAMGuard ASIO system since the JAsioHost By preference, users should use the PAMGuard ASIO system since the JAsioHost

View File

@ -17,6 +17,7 @@ import javax.swing.Timer;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import Acquisition.FolderInputSystem;
import PamController.PamControlledUnit; import PamController.PamControlledUnit;
import PamController.PamControlledUnitSettings; import PamController.PamControlledUnitSettings;
import PamController.PamController; import PamController.PamController;
@ -24,6 +25,7 @@ import PamController.PamControllerInterface;
import PamController.PamSettingManager; import PamController.PamSettingManager;
import PamController.PamSettings; import PamController.PamSettings;
import PamController.command.CommandManager; import PamController.command.CommandManager;
import PamUtils.FileFunctions;
import PamUtils.PamCalendar; import PamUtils.PamCalendar;
import PamUtils.PamUtils; import PamUtils.PamUtils;
import PamView.MenuItemEnabler; import PamView.MenuItemEnabler;
@ -35,6 +37,7 @@ import SoundRecorder.trigger.RecorderTrigger;
import SoundRecorder.trigger.RecorderTriggerData; import SoundRecorder.trigger.RecorderTriggerData;
import SoundRecorder.trigger.TriggerDecisionMaker; import SoundRecorder.trigger.TriggerDecisionMaker;
import backupmanager.BackupInformation; import backupmanager.BackupInformation;
import pamguard.GlobalArguments;
/** /**
* Control a sound file recorder. The sound file recorder has two * Control a sound file recorder. The sound file recorder has two
@ -434,9 +437,51 @@ public class RecorderControl extends PamControlledUnit implements PamSettings {
public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) { public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) {
recorderSettings = ((RecorderSettings) pamControlledUnitSettings.getSettings()).clone(); recorderSettings = ((RecorderSettings) pamControlledUnitSettings.getSettings()).clone();
newParams(); newParams();
/*
* Then check to see if there is a command line override of the currently stored folder name.
*/
String globFolder = GlobalArguments.getParam(FolderInputSystem.GlobalWavFolderArg);
if (globFolder != null) {
boolean ok = checkGlobFolder(globFolder);
if (ok) {
recorderSettings.setOutputFolder(globFolder); // remember it.
}
else {
System.err.println("Unable to set recording storage folder " + globFolder);
}
}
return true; return true;
} }
/**
* Set and create if necessary the global folder.
* @param globFolder
*/
private boolean checkGlobFolder(String globFolder) {
File outFold = new File(globFolder);
if (outFold.exists()) {
if (outFold.isDirectory()) {
return true; // all OK
}
else {
return false; // it must be a file - that's bad !
}
}
// try to create it.
try {
if (outFold.mkdirs()) {
FileFunctions.setNonIndexingBit(outFold);
return true;
}
else {
return false; // unable to make the folder.
}
}
catch (Exception e) {
System.err.println("Can't set recording store folder: " + e.getLocalizedMessage());
return false;
}
}
/** /**
* Adds a recorder trigger to this recorderControl. This can either be called * Adds a recorder trigger to this recorderControl. This can either be called

View File

@ -64,6 +64,10 @@ public class RecorderSettings implements Serializable, Cloneable, ManagedParamet
*/ */
public String outputFolder; public String outputFolder;
public void setOutputFolder(String outputFolder) {
this.outputFolder = outputFolder;
}
/** /**
* Initials to add to the start of a file name, the rest * Initials to add to the start of a file name, the rest
* of which is made up from the date. * of which is made up from the date.

View File

@ -17,6 +17,7 @@ import Acquisition.DaqSystem;
import Acquisition.AudioDataQueue; import Acquisition.AudioDataQueue;
import PamController.PamControlledUnitSettings; import PamController.PamControlledUnitSettings;
import PamController.PamController; import PamController.PamController;
import PamController.PamGUIManager;
import PamController.PamSettingManager; import PamController.PamSettingManager;
import PamController.PamSettings; import PamController.PamSettings;
import PamDetection.RawDataUnit; import PamDetection.RawDataUnit;
@ -192,7 +193,12 @@ public class SmruDaqSystem extends DaqSystem implements PamSettings {
+ " in another instance of PAMGuard. \n" + " in another instance of PAMGuard. \n"
+ "Check that no other instances of PAMGuard are open and try again. \nIf no other instances of PAMGuard are open " + "Check that no other instances of PAMGuard are open and try again. \nIf no other instances of PAMGuard are open "
+ "then you should cycle the power on the card(s) and restart PAMGuard"); + "then you should cycle the power on the card(s) and restart PAMGuard");
JOptionPane.showMessageDialog(daqControl.getGuiFrame(), msg, daqControl.getUnitName() + " Error", JOptionPane.ERROR_MESSAGE); if (PamGUIManager.getGUIType() == PamGUIManager.NOGUI) {
System.out.println(msg);
}
else {
JOptionPane.showMessageDialog(daqControl.getGuiFrame(), msg, daqControl.getUnitName() + " Error", JOptionPane.ERROR_MESSAGE);
}
PamController.getInstance().stopLater(); PamController.getInstance().stopLater();
return false; return false;
} }

View File

@ -278,7 +278,7 @@ public class WhistleBinaryDataSource extends BinaryDataSource {
* If we're n network receive mode, we can't do this until * If we're n network receive mode, we can't do this until
* channel numbers have been reassigned. * channel numbers have been reassigned.
*/ */
if (runMode == PamController.RUN_PAMVIEW && delays != null) { if ((runMode == PamController.RUN_PAMVIEW || runMode == PamController.RUN_NOTHING) && delays != null) {
ShapeConnector shapeConnector = wmDetector.findShapeConnector(channelMap); ShapeConnector shapeConnector = wmDetector.findShapeConnector(channelMap);
if (shapeConnector != null) { if (shapeConnector != null) {
BearingLocaliser bl = shapeConnector.getBearingLocaliser(); BearingLocaliser bl = shapeConnector.getBearingLocaliser();