@@ -59,7 +59,10 @@ const CoordinateTypes = {
59
59
COORDINATE_INPUT_TYPE_DD_MM_SS : 6 , //DD MM SS.ssssss
60
60
COORDINATE_INPUT_TYPE_DD_MM_SS_DASH : 7 , //DD-MM-SS.ssssss
61
61
COORDINATE_INPUT_TYPE_DD_MM_SS_SYMBOL : 8 , //DD°MM'SS.ssssss"
62
- COORDINATE_INPUT_TYPE_INVALID_UNKNOWN : 9 ,
62
+ COORDINATE_INPUT_TYPE_DDMMSS_NO_DECIMAL : 9 , //DDMMSS - No decimal
63
+ COORDINATE_INPUT_TYPE_DD_MM_SS_NO_DECIMAL : 10 , //DD MM SS - No decimal
64
+ COORDINATE_INPUT_TYPE_DD_MM_SS_DASH_NO_DECIMAL : 11 , //DD-MM-SS - No decimal
65
+ COORDINATE_INPUT_TYPE_INVALID_UNKNOWN : 12 ,
63
66
}
64
67
65
68
var convertedCoordinate = 0.0 ;
@@ -95,6 +98,8 @@ function parseIncoming(msg) {
95
98
hide ( "ppConfig" ) ;
96
99
hide ( "ethernetConfig" ) ;
97
100
hide ( "ntpConfig" ) ;
101
+ //hide("allowWiFiOverEthernetClient"); //For future expansion
102
+ //hide("allowWiFiOverEthernetServer"); //For future expansion
98
103
99
104
hide ( "dataPortChannelDropdown" ) ;
100
105
}
@@ -104,13 +109,17 @@ function parseIncoming(msg) {
104
109
hide ( "ppConfig" ) ;
105
110
hide ( "ethernetConfig" ) ;
106
111
hide ( "ntpConfig" ) ;
112
+ //hide("allowWiFiOverEthernetClient"); //For future expansion
113
+ //hide("allowWiFiOverEthernetServer"); //For future expansion
107
114
}
108
115
else if ( platformPrefix == "Express Plus" ) {
109
116
hide ( "baseConfig" ) ;
110
117
show ( "sensorConfig" ) ;
111
118
hide ( "ppConfig" ) ;
112
119
hide ( "ethernetConfig" ) ;
113
120
hide ( "ntpConfig" ) ;
121
+ //hide("allowWiFiOverEthernetClient"); //For future expansion
122
+ //hide("allowWiFiOverEthernetServer"); //For future expansion
114
123
115
124
ge ( "muxChannel2" ) . innerHTML = "Wheel/Dir Encoder" ;
116
125
}
@@ -120,13 +129,17 @@ function parseIncoming(msg) {
120
129
show ( "ppConfig" ) ;
121
130
hide ( "ethernetConfig" ) ;
122
131
hide ( "ntpConfig" ) ;
132
+ //hide("allowWiFiOverEthernetClient"); //For future expansion
133
+ //hide("allowWiFiOverEthernetServer"); //For future expansion
123
134
}
124
135
else if ( platformPrefix == "Reference Station" ) {
125
136
show ( "baseConfig" ) ;
126
137
hide ( "sensorConfig" ) ;
127
138
hide ( "ppConfig" ) ;
128
139
show ( "ethernetConfig" ) ;
129
140
show ( "ntpConfig" ) ;
141
+ //hide("allowWiFiOverEthernetClient"); //For future expansion
142
+ //hide("allowWiFiOverEthernetServer"); //For future expansion
130
143
}
131
144
}
132
145
else if ( id . includes ( "zedFirmwareVersionInt" ) ) {
@@ -335,10 +348,13 @@ function parseIncoming(msg) {
335
348
ge ( "radioType" ) . dispatchEvent ( new CustomEvent ( 'change' ) ) ;
336
349
ge ( "antennaReferencePoint" ) . dispatchEvent ( new CustomEvent ( 'change' ) ) ;
337
350
ge ( "autoIMUmountAlignment" ) . dispatchEvent ( new CustomEvent ( 'change' ) ) ;
351
+ ge ( "enableARPLogging" ) . dispatchEvent ( new CustomEvent ( 'change' ) ) ;
338
352
339
353
updateECEFList ( ) ;
340
354
updateGeodeticList ( ) ;
341
355
tcpBoxes ( ) ;
356
+ tcpBoxesEthernet ( ) ;
357
+ dhcpEthernet ( ) ;
342
358
updateLatLong ( ) ;
343
359
}
344
360
@@ -579,6 +595,7 @@ function validateFields() {
579
595
if ( ge ( "enableTcpClient" ) . checked || ge ( "enableTcpServer" ) . checked ) {
580
596
checkElementString ( "wifiTcpPort" , 1 , 65535 , "Must be 1 to 65535" , "collapseWiFiConfig" ) ;
581
597
}
598
+ checkCheckboxMutex ( "enableTcpClient" , "enableTcpServer" , "TCP Client and Server can not be enabled at the same time" , "collapseWiFiConfig" ) ;
582
599
583
600
//System Config
584
601
if ( ge ( "enableLogging" ) . checked ) {
@@ -590,6 +607,13 @@ function validateFields() {
590
607
clearElement ( "maxLogLength_minutes" , 60 * 24 ) ;
591
608
}
592
609
610
+ if ( ge ( "enableARPLogging" ) . checked ) {
611
+ checkElementValue ( "ARPLoggingInterval" , 1 , 600 , "Must be 1 to 600" , "collapseSystemConfig" ) ;
612
+ }
613
+ else {
614
+ clearElement ( "ARPLoggingInterval" , 10 ) ;
615
+ }
616
+
593
617
//Ethernet
594
618
if ( platformPrefix == "Reference Station" ) {
595
619
//if (ge("ethernetDHCP").checked == false) {
@@ -599,6 +623,10 @@ function validateFields() {
599
623
checkElementIPAddress ( "ethernetSubnet" , "Must be nnn.nnn.nnn.nnn" , "collapseEthernetConfig" ) ;
600
624
checkElementValue ( "ethernetHttpPort" , 0 , 65535 , "Must be 0 to 65535" , "collapseEthernetConfig" ) ;
601
625
checkElementValue ( "ethernetNtpPort" , 0 , 65535 , "Must be 0 to 65535" , "collapseEthernetConfig" ) ;
626
+ if ( ge ( "enableTcpClientEthernet" ) . checked ) {
627
+ checkElementString ( "ethernetTcpPort" , 1 , 65535 , "Must be 1 to 65535" , "collapseEthernetConfig" ) ;
628
+ checkElementString ( "hostForTCPClient" , 0 , 50 , "Must be 0 to 50 characters" , "collapseEthernetConfig" ) ;
629
+ }
602
630
//}
603
631
//else {
604
632
// clearElement("ethernetIP", "192.168.0.123");
@@ -822,6 +850,19 @@ function checkElementCasterUser(id, badUserName, errorText, collapseID) {
822
850
clearError ( id ) ;
823
851
}
824
852
853
+ function checkCheckboxMutex ( id1 , id2 , errorText , collapseID ) {
854
+ if ( ( ge ( id1 ) . checked ) && ( ge ( id2 ) . checked ) ) {
855
+ ge ( id1 + 'Error' ) . innerHTML = 'Error: ' + errorText ;
856
+ ge ( id2 + 'Error' ) . innerHTML = 'Error: ' + errorText ;
857
+ ge ( collapseID ) . classList . add ( 'show' ) ;
858
+ errorCount ++ ;
859
+ }
860
+ else {
861
+ clearError ( id1 ) ;
862
+ clearError ( id2 ) ;
863
+ }
864
+ }
865
+
825
866
function clearElement ( id , value ) {
826
867
ge ( id ) . value = value ;
827
868
clearError ( id ) ;
@@ -1135,6 +1176,15 @@ document.addEventListener("DOMContentLoaded", (event) => {
1135
1176
}
1136
1177
} ) ;
1137
1178
1179
+ ge ( "enableARPLogging" ) . addEventListener ( "change" , function ( ) {
1180
+ if ( ge ( "enableARPLogging" ) . checked ) {
1181
+ show ( "enableARPLoggingDetails" ) ;
1182
+ }
1183
+ else {
1184
+ hide ( "enableARPLoggingDetails" ) ;
1185
+ }
1186
+ } ) ;
1187
+
1138
1188
ge ( "fixedAltitude" ) . addEventListener ( "change" , function ( ) {
1139
1189
adjustHAE ( ) ;
1140
1190
} ) ;
@@ -1268,12 +1318,12 @@ function addGeodetic() {
1268
1318
for ( ; index < recordsGeodetic . length ; ++ index ) {
1269
1319
var parts = recordsGeodetic [ index ] . split ( ' ' ) ;
1270
1320
if ( ge ( "nicknameGeodetic" ) . value == parts [ 0 ] ) {
1271
- recordsGeodetic [ index ] = nicknameGeodetic . value + ' ' + fixedLat . value + ' ' + fixedLongText . value + ' ' + fixedAltitude . value + ' ' + antennaHeight . value + ' ' + antennaReferencePoint . value ;
1321
+ recordsGeodetic [ index ] = nicknameGeodetic . value + ' ' + fixedLatText . value + ' ' + fixedLongText . value + ' ' + fixedAltitude . value + ' ' + antennaHeight . value + ' ' + antennaReferencePoint . value ;
1272
1322
break ;
1273
1323
}
1274
1324
}
1275
1325
if ( index == recordsGeodetic . length )
1276
- recordsGeodetic . push ( nicknameGeodetic . value + ' ' + fixedLat . value + ' ' + fixedLongText . value + ' ' + fixedAltitude . value + ' ' + antennaHeight . value + ' ' + antennaReferencePoint . value ) ;
1326
+ recordsGeodetic . push ( nicknameGeodetic . value + ' ' + fixedLatText . value + ' ' + fixedLongText . value + ' ' + fixedAltitude . value + ' ' + antennaHeight . value + ' ' + antennaReferencePoint . value ) ;
1277
1327
}
1278
1328
1279
1329
updateGeodeticList ( ) ;
@@ -1361,7 +1411,16 @@ function updateGeodeticList() {
1361
1411
$ ( "#StationCoordinatesGeodetic option" ) . each ( function ( ) {
1362
1412
var parts = $ ( this ) . text ( ) . split ( ' ' ) ;
1363
1413
var nickname = parts [ 0 ] . substring ( 0 , 15 ) ;
1364
- $ ( this ) . text ( nickname + ': ' + parts [ 1 ] + ' ' + parts [ 2 ] + ' ' + parts [ 3 ] ) . text ;
1414
+
1415
+ if ( parts . length >= 7 ) {
1416
+ $ ( this ) . text ( nickname + ': ' + parts [ 1 ] + ' ' + parts [ 2 ] + ' ' + parts [ 3 ]
1417
+ + ' ' + parts [ 4 ] + ' ' + parts [ 5 ] + ' ' + parts [ 6 ]
1418
+ + ' ' + parts [ 7 ] ) . text ;
1419
+ }
1420
+ else {
1421
+ $ ( this ) . text ( nickname + ': ' + parts [ 1 ] + ' ' + parts [ 2 ] + ' ' + parts [ 3 ] ) . text ;
1422
+ }
1423
+
1365
1424
} ) ;
1366
1425
}
1367
1426
@@ -1517,6 +1576,25 @@ function tcpBoxes() {
1517
1576
}
1518
1577
}
1519
1578
1579
+ function tcpBoxesEthernet ( ) {
1580
+ if ( ge ( "enableTcpClientEthernet" ) . checked ) {
1581
+ show ( "tcpSettingsConfigEthernet" ) ;
1582
+ }
1583
+ else {
1584
+ hide ( "tcpSettingsConfigEthernet" ) ;
1585
+ //ge("ethernetTcpPort").value = 2947;
1586
+ }
1587
+ }
1588
+
1589
+ function dhcpEthernet ( ) {
1590
+ if ( ge ( "ethernetDHCP" ) . checked ) {
1591
+ hide ( "fixedIPSettingsConfigEthernet" ) ;
1592
+ }
1593
+ else {
1594
+ show ( "fixedIPSettingsConfigEthernet" ) ;
1595
+ }
1596
+ }
1597
+
1520
1598
function networkCount ( ) {
1521
1599
var count = 0 ;
1522
1600
@@ -1669,7 +1747,7 @@ function identifyInputType(userEntry) {
1669
1747
// DD MM SS.ssssss
1670
1748
// DD-MM-SS.ssssss
1671
1749
1672
- if ( decimalCount != 1 ) return ( CoordinateTypes . COORDINATE_INPUT_TYPE_INVALID_UNKNOWN ) ; //Just no. 40.09033470 is valid.
1750
+ if ( decimalCount > 1 ) return ( CoordinateTypes . COORDINATE_INPUT_TYPE_INVALID_UNKNOWN ) ; //Just no. 40.09033470 is valid.
1673
1751
if ( spaceCount > 2 ) return ( CoordinateTypes . COORDINATE_INPUT_TYPE_INVALID_UNKNOWN ) ; //Only 0, 1, or 2 allowed. 40 05 25.2049 is valid.
1674
1752
if ( dashCount > 3 ) return ( CoordinateTypes . COORDINATE_INPUT_TYPE_INVALID_UNKNOWN ) ; //Only 0, 1, 2, or 3 allowed. -105-11-05.1629 is valid.
1675
1753
if ( lengthOfLeadingNumber > 7 ) return ( CoordinateTypes . COORDINATE_INPUT_TYPE_INVALID_UNKNOWN ) ; //Only 7 or fewer. -1051105.188992 (DDDMMSS or DDMMSS) is valid
@@ -1689,6 +1767,11 @@ function identifyInputType(userEntry) {
1689
1767
var decimal = Math . trunc ( intPortion / 10000 ) ; //Get DDD
1690
1768
intPortion -= ( decimal * 10000 ) ;
1691
1769
var minutes = Math . trunc ( intPortion / 100 ) ; //Get MM
1770
+
1771
+ //Find '.'
1772
+ if ( userEntry . indexOf ( '.' ) == - 1 )
1773
+ coordinateInputType = CoordinateTypes . COORDINATE_INPUT_TYPE_DDMMSS_NO_DECIMAL ;
1774
+
1692
1775
var seconds = userEntry ; //Get DDDMMSS.ssssss
1693
1776
seconds -= ( decimal * 10000 ) ; //Remove DDD
1694
1777
seconds -= ( minutes * 100 ) ; //Remove MM
@@ -1725,6 +1808,11 @@ function identifyInputType(userEntry) {
1725
1808
var data = userEntry . split ( '-' ) ;
1726
1809
var decimal = Number ( data [ 0 ] ) ; //Get DD
1727
1810
var minutes = Number ( data [ 1 ] ) ; //Get MM
1811
+
1812
+ //Find '.'
1813
+ if ( userEntry . indexOf ( '.' ) == - 1 )
1814
+ coordinateInputType = CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH_NO_DECIMAL ;
1815
+
1728
1816
var seconds = Number ( data [ 2 ] ) ; //Get SS.ssssss
1729
1817
convertedCoordinate = decimal + ( minutes / 60.0 ) + ( seconds / 3600.0 ) ;
1730
1818
if ( negativeSign ) convertedCoordinate *= - 1 ;
@@ -1752,6 +1840,11 @@ function identifyInputType(userEntry) {
1752
1840
var data = userEntry . split ( ' ' ) ;
1753
1841
var decimal = Number ( data [ 0 ] ) ; //Get DD
1754
1842
var minutes = Number ( data [ 1 ] ) ; //Get MM
1843
+
1844
+ //Find '.'
1845
+ if ( userEntry . indexOf ( '.' ) == - 1 )
1846
+ coordinateInputType = CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_NO_DECIMAL ;
1847
+
1755
1848
var seconds = Number ( data [ 2 ] ) ; //Get SS.ssssss
1756
1849
convertedCoordinate = decimal + ( minutes / 60.0 ) + ( seconds / 3600.0 ) ;
1757
1850
if ( negativeSign ) convertedCoordinate *= - 1 ;
@@ -1796,6 +1889,9 @@ function convertInput(coordinate, coordinateInputType) {
1796
1889
|| coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DDMMSS
1797
1890
|| coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH
1798
1891
|| coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_SYMBOL
1892
+ || coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DDMMSS_NO_DECIMAL
1893
+ || coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_NO_DECIMAL
1894
+ || coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH_NO_DECIMAL
1799
1895
) {
1800
1896
var longitudeDegrees = Math . trunc ( coordinate ) ;
1801
1897
coordinate -= longitudeDegrees ;
@@ -1815,8 +1911,14 @@ function convertInput(coordinate, coordinateInputType) {
1815
1911
coordinateString = longitudeDegrees + "-" + longitudeMinutes + "-" + coordinate ;
1816
1912
else if ( coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_SYMBOL )
1817
1913
coordinateString = longitudeDegrees + "°" + longitudeMinutes + "'" + coordinate + "\"" ;
1818
- else
1914
+ else if ( coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS )
1819
1915
coordinateString = longitudeDegrees + " " + longitudeMinutes + " " + coordinate ;
1916
+ else if ( coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DDMMSS_NO_DECIMAL )
1917
+ coordinateString = longitudeDegrees + "" + longitudeMinutes + "" + Math . round ( coordinate ) ;
1918
+ else if ( coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_NO_DECIMAL )
1919
+ coordinateString = longitudeDegrees + " " + longitudeMinutes + " " + Math . round ( coordinate ) ;
1920
+ else if ( coordinateInputType == CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH_NO_DECIMAL )
1921
+ coordinateString = longitudeDegrees + "-" + longitudeMinutes + "-" + Math . round ( coordinate ) ;
1820
1922
}
1821
1923
1822
1924
return ( coordinateString ) ;
@@ -1853,8 +1955,14 @@ function printableInputType(coordinateInputType) {
1853
1955
case ( CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS ) :
1854
1956
return ( "DD MM SS.ssssss" ) ;
1855
1957
break ;
1856
- case ( CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH ) :
1857
- return ( "DD-MM-SS.ssssss" ) ;
1958
+ case ( CoordinateTypes . COORDINATE_INPUT_TYPE_DDMMSS_NO_DECIMAL ) :
1959
+ return ( "DDMMSS" ) ;
1960
+ break ;
1961
+ case ( CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_NO_DECIMAL ) :
1962
+ return ( "DD MM SS" ) ;
1963
+ break ;
1964
+ case ( CoordinateTypes . COORDINATE_INPUT_TYPE_DD_MM_SS_DASH_NO_DECIMAL ) :
1965
+ return ( "DD-MM-SS" ) ;
1858
1966
break ;
1859
1967
}
1860
1968
return ( "Unknown" ) ;
0 commit comments