Read driver configuration file
The driver configuration file is an XML (could be transformed in JSON when more convenient) file with the configurations of the driver. The current format is the following:
<?xml version="1.0"?>
<humainAntennaSpecification xmlns="http://www.sidc.be/humain/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sidc.be/humain http://www.sidc.be/humain/humainantennaspecification.xsd">
<communicationPort>20000</communicationPort>
<!-- Ticks -->
<totalNumberHourAngleTicks>8192</totalNumberHourAngleTicks>
<!-- Ticks -->
<totalNumberDeclinationAngleTicks>8192</totalNumberDeclinationAngleTicks>
<!-- Ticks -->
<absoluteErrorAcceptanceHourAngleTicks>20</absoluteErrorAcceptanceHourAngleTicks>
<!-- Ticks -->
<absoluteErrorAcceptanceDeclinationAngleTicks>20</absoluteErrorAcceptanceDeclinationAngleTicks>
<!-- Ticks -->
<absoluteHourAngleToleranceTicks>0</absoluteHourAngleToleranceTicks>
<!-- Ticks -->
<absoluteDeclinationAngleToleranceTicks>0</absoluteDeclinationAngleToleranceTicks>
<!-- Ticks -->
<minimumHourAngleTick>2300</minimumHourAngleTick>
<!-- Ticks -->
<maximumHourAngleTick>5150</maximumHourAngleTick>
<!-- Ticks -->
<!--<minimumDeclinationTick>3533</minimumDeclinationTick>-->
<minimumDeclinationTick>2000</minimumDeclinationTick>
<!-- Ticks -->
<maximumDeclinationTick>5000</maximumDeclinationTick>
<!-- Ticks -->
<meridian>4000</meridian>
<!-- Ticks -->
<zenith>4000</zenith>
<maxSendReports>500</maxSendReports>
<motorList>
<motor>
<motorName>Motor alpha</motorName>
<!-- In ticks per minute -->
<motorSpeed>5.6888</motorSpeed>
<motorLogIndicatorList>
<indicator>MA</indicator>
</motorLogIndicatorList>
<!-- In milliseconds -->
<logSpeed>5274</logSpeed>
</motor>
<motor>
<motorName>fast hour angle motor</motorName>
<!-- In ticks per minute -->
<motorSpeed>273.066666667</motorSpeed>
<motorLogIndicatorList>
<indicator>CE</indicator>
<indicator>CO</indicator>
</motorLogIndicatorList>
<!-- In milliseconds -->
<logSpeed>110</logSpeed>
</motor>
<motor>
<motorName>Declination Motor</motorName>
<!-- In ticks per minute -->
<motorSpeed>136.53333333</motorSpeed>
<motorLogIndicatorList>
<indicator>CB</indicator>
<indicator>CH</indicator>
</motorLogIndicatorList>
<!-- In milliseconds -->
<logSpeed>220</logSpeed>
</motor>
</motorList>
<latestInstructionsFile>/Users/bramb/Documents/OMA/Antenna/config/latestInstructions.txt</latestInstructionsFile>
<previousInstructionsFile>/Users/bramb/Documents/OMA/Antenna/config/previousInstructions.txt</previousInstructionsFile>
<notUsedInstructionsFile>/Users/bramb/Documents/OMA/Antenna/config/notusedinstructions.txt</notUsedInstructionsFile>
<rejectedInstructionsFile>/Users/bramb/Documents/OMA/Antenna/config/rejectectedinstructions.txt</rejectedInstructionsFile>
<logDirectory>/Users/bramb/Documents/OMA/Antenna/config/</logDirectory>
<workReportDB>/Users/bramb/Documents/OMA/Antenna/db/work_db</workReportDB>
<dailyReportDB>/Users/bramb/Documents/OMA/Antenna/db/daily_db</dailyReportDB>
<pointingDB>/Users/bramb/Documents/OMA/Antenna/db/pointing_db</pointingDB>
<statusRegistrationFrequency>100</statusRegistrationFrequency>
<reportPersistingFrequency>600000</reportPersistingFrequency>
<workReportFileName>workreport.bin</workReportFileName>
<antennaStatusFile>/Users/bramb/Documents/OMA/Antenna/config/antennaStatus.txt</antennaStatusFile>
<commandFile>/Users/bramb/Documents/OMA/Antenna/config/commandFile.txt</commandFile>
<commandErrorFile>/Users/bramb/Documents/OMA/Antenna/config/commandErrorFile.txt</commandErrorFile>
<commandLogFileDirectory>/Users/bramb/Documents/OMA/Antenna/config/</commandLogFileDirectory>
</humainAntennaSpecification>
This file should be read when the program starts and the values should be made available to all the components that need those to operate.