|
1 | 1 | package de.taimos.gpsd4java.backend;
|
2 | 2 |
|
| 3 | +import de.taimos.gpsd4java.types.ENMEAMode; |
3 | 4 | import de.taimos.gpsd4java.types.SATObject;
|
| 5 | +import de.taimos.gpsd4java.types.SKYObject; |
| 6 | +import de.taimos.gpsd4java.types.TPVObject; |
| 7 | +import de.taimos.gpsd4java.types.subframes.IONOObject; |
| 8 | +import org.json.JSONArray; |
4 | 9 | import org.json.JSONObject;
|
5 | 10 | import org.junit.Assert;
|
6 | 11 | import org.junit.Before;
|
@@ -37,4 +42,158 @@ public void testSatObject() {
|
37 | 42 | Assert.assertEquals(0, satObject.getSignalStrength());
|
38 | 43 | }
|
39 | 44 |
|
| 45 | + @Test |
| 46 | + public void testIonoObject() { |
| 47 | + final JSONObject json = new JSONObject(); |
| 48 | + json.put("a0", 1.0); |
| 49 | + json.put("a1", 2.0); |
| 50 | + json.put("a2", 3.0); |
| 51 | + json.put("b0", 11.0); |
| 52 | + json.put("b1", 12.0); |
| 53 | + json.put("b2", 13.0); |
| 54 | + json.put("b3", 14.0); |
| 55 | + json.put("A0", 21.0); |
| 56 | + json.put("A1", 22.0); |
| 57 | + json.put("tot", 31.0); |
| 58 | + json.put("WNt", 100); |
| 59 | + json.put("ls", 101); |
| 60 | + json.put("WNlsf", 102); |
| 61 | + json.put("DN", 103); |
| 62 | + json.put("lsf", 104); |
| 63 | + final IONOObject ionoObject = (IONOObject) this.resultParser.parseIONO(json); |
| 64 | + Assert.assertEquals(1.0, ionoObject.getAlpha0(), 0); |
| 65 | + Assert.assertEquals(2.0, ionoObject.getAlpha1(), 0); |
| 66 | + Assert.assertEquals(3.0, ionoObject.getAlpha2(), 0); |
| 67 | + Assert.assertEquals(11.0, ionoObject.getBeta0(), 0); |
| 68 | + Assert.assertEquals(12.0, ionoObject.getBeta1(), 0); |
| 69 | + Assert.assertEquals(13.0, ionoObject.getBeta2(), 0); |
| 70 | + Assert.assertEquals(14.0, ionoObject.getBeta3(), 0); |
| 71 | + Assert.assertEquals(21.0, ionoObject.getA0(), 0); |
| 72 | + Assert.assertEquals(22.0, ionoObject.getA1(), 0); |
| 73 | + Assert.assertEquals(31.0, ionoObject.getTot(), 0); |
| 74 | + Assert.assertEquals(100, ionoObject.getWNt()); |
| 75 | + Assert.assertEquals(101, ionoObject.getLeap()); |
| 76 | + Assert.assertEquals(102, ionoObject.getWNlsf()); |
| 77 | + Assert.assertEquals(103, ionoObject.getDN()); |
| 78 | + Assert.assertEquals(104, ionoObject.getLsf()); |
| 79 | + } |
| 80 | + |
| 81 | + @Test |
| 82 | + public void testSkyObject() throws Exception { |
| 83 | + |
| 84 | + final JSONObject json = new JSONObject(); |
| 85 | + json.put("device", "/dev/ttyUSB0"); |
| 86 | + json.put("time", "2025-02-11T08:39:29.000Z"); |
| 87 | + json.put("gdop", 1.29); |
| 88 | + json.put("hdop", 0.61); |
| 89 | + json.put("pdop", 1.16); |
| 90 | + json.put("tdop", 0.56); |
| 91 | + json.put("xdop", 0.38); |
| 92 | + json.put("ydop", 0.49); |
| 93 | + json.put("vdop", 0.99); |
| 94 | + json.put("nSat", 2); |
| 95 | + |
| 96 | + final JSONArray satellites = new JSONArray(); |
| 97 | + json.put("satellites", satellites); |
| 98 | + |
| 99 | + final JSONObject sat1 = new JSONObject(); |
| 100 | + sat1.put("PRN", 6); |
| 101 | + sat1.put("gnssid", 0); |
| 102 | + sat1.put("svid", 6); |
| 103 | + sat1.put("az", 110.0); |
| 104 | + sat1.put("el", 2.0); |
| 105 | + sat1.put("prRes", 11.0); |
| 106 | + sat1.put("qual", 1); |
| 107 | + sat1.put("ss", 0.0); |
| 108 | + sat1.put("used", false); |
| 109 | + sat1.put("health", 1); |
| 110 | + |
| 111 | + final JSONObject sat2 = new JSONObject(); |
| 112 | + sat2.put("PRN", 10); |
| 113 | + sat2.put("gnssid", 0); |
| 114 | + sat2.put("svid", 10); |
| 115 | + sat2.put("az", 303.0); |
| 116 | + sat2.put("el", 14.0); |
| 117 | + sat2.put("prRes", 30.3); |
| 118 | + sat2.put("qual", 7); |
| 119 | + sat2.put("ss", 48.0); |
| 120 | + sat2.put("used", true); |
| 121 | + sat2.put("health", 1); |
| 122 | + |
| 123 | + satellites.put(sat1); |
| 124 | + satellites.put(sat2); |
| 125 | + |
| 126 | + final SKYObject skyObject = (SKYObject) this.resultParser.parseSKY(json); |
| 127 | + |
| 128 | + Assert.assertEquals("/dev/ttyUSB0", skyObject.getDevice()); |
| 129 | + Assert.assertEquals(1739263169.0, skyObject.getTimestamp(), 0.0); |
| 130 | + Assert.assertEquals(1.29, skyObject.getHypersphericalDOP(), 0.0); |
| 131 | + Assert.assertEquals(0.61, skyObject.getHorizontalDOP(), 0.0); |
| 132 | + Assert.assertEquals(1.16, skyObject.getSphericalDOP(), 0.0); |
| 133 | + Assert.assertEquals(0.56, skyObject.getTimestampDOP(), 0.0); |
| 134 | + Assert.assertEquals(0.38, skyObject.getLongitudeDOP(), 0.0); |
| 135 | + Assert.assertEquals(0.49, skyObject.getLatitudeDOP(), 0.0); |
| 136 | + Assert.assertEquals(0.99, skyObject.getAltitudeDOP(), 0.0); |
| 137 | + Assert.assertEquals(2, skyObject.getSatellites().size()); |
| 138 | + |
| 139 | + final SATObject satObject1 = skyObject.getSatellites().get(0); |
| 140 | + Assert.assertEquals(6, satObject1.getPRN()); |
| 141 | + Assert.assertEquals(0, satObject1.getGnssId()); |
| 142 | + Assert.assertEquals(110.0, satObject1.getAzimuth(), 0.0); |
| 143 | + Assert.assertEquals(2.0, satObject1.getElevation(), 0.0); |
| 144 | + Assert.assertEquals(0.0, satObject1.getSignalStrength(), 0.0); |
| 145 | + Assert.assertFalse(satObject1.getUsed()); |
| 146 | + |
| 147 | + final SATObject satObject2 = skyObject.getSatellites().get(1); |
| 148 | + Assert.assertEquals(10, satObject2.getPRN()); |
| 149 | + Assert.assertEquals(0, satObject2.getGnssId()); |
| 150 | + Assert.assertEquals(303.0, satObject2.getAzimuth(), 0.0); |
| 151 | + Assert.assertEquals(14.0, satObject2.getElevation(), 0.0); |
| 152 | + Assert.assertEquals(48.0, satObject2.getSignalStrength(), 0.0); |
| 153 | + Assert.assertTrue(satObject2.getUsed()); |
| 154 | + } |
| 155 | + |
| 156 | + @Test |
| 157 | + public void testTpvObject() { |
| 158 | + |
| 159 | + final JSONObject json = new JSONObject(); |
| 160 | + json.put("tag", "tag"); |
| 161 | + json.put("alt", 136.054); |
| 162 | + json.put("epv", 0.835); |
| 163 | + json.put("device", "/dev/ttyUSB0"); |
| 164 | + json.put("time", "2025-02-11T08:39:29.000Z"); |
| 165 | + json.put("ept", 0.005); |
| 166 | + json.put("lat", 42.7045841); |
| 167 | + json.put("lon", 12.1588884); |
| 168 | + json.put("alt", 136.054); |
| 169 | + json.put("epx", 1.411); |
| 170 | + json.put("epy", 1.822); |
| 171 | + json.put("epv", 0.835); |
| 172 | + json.put("track", 144.6175); |
| 173 | + json.put("speed", 22.693); |
| 174 | + json.put("climb", 0.023); |
| 175 | + json.put("epd", 9.1852); |
| 176 | + json.put("eps", 3.51); |
| 177 | + json.put("epc", 1.68); |
| 178 | + json.put("mode", 3); |
| 179 | + |
| 180 | + final TPVObject tpvObject = (TPVObject) this.resultParser.parseTPV(json); |
| 181 | + Assert.assertEquals(136.054, tpvObject.getAltitude(), 0); |
| 182 | + Assert.assertEquals(0.835, tpvObject.getAltitudeError(), 0); |
| 183 | + Assert.assertEquals(0.023, tpvObject.getClimbRate(), 0); |
| 184 | + Assert.assertEquals(1.68, tpvObject.getClimbRateError(), 0); |
| 185 | + Assert.assertEquals(144.6175, tpvObject.getCourse(), 0); |
| 186 | + Assert.assertEquals(9.1852, tpvObject.getCourseError(), 0); |
| 187 | + Assert.assertEquals("/dev/ttyUSB0", tpvObject.getDevice()); |
| 188 | + Assert.assertEquals(42.7045841, tpvObject.getLatitude(), 0); |
| 189 | + Assert.assertEquals(1.822, tpvObject.getLatitudeError(), 0); |
| 190 | + Assert.assertEquals(12.1588884, tpvObject.getLongitude(), 0); |
| 191 | + Assert.assertEquals(1.411, tpvObject.getLongitudeError(), 0); |
| 192 | + Assert.assertEquals(ENMEAMode.ThreeDimensional, tpvObject.getMode()); |
| 193 | + Assert.assertEquals(22.693, tpvObject.getSpeed(), 0); |
| 194 | + Assert.assertEquals(3.51, tpvObject.getSpeedError(), 0); |
| 195 | + Assert.assertEquals("tag", tpvObject.getTag()); |
| 196 | + Assert.assertEquals(1739263169.0, tpvObject.getTimestamp(), 0); |
| 197 | + Assert.assertEquals(0.005, tpvObject.getTimestampError(), 0); |
| 198 | + } |
40 | 199 | }
|
0 commit comments