diff --git a/pom.xml b/pom.xml index 7b55183b..1324f8f5 100644 --- a/pom.xml +++ b/pom.xml @@ -89,7 +89,7 @@ ru.r2cloud jradio - 1.101 + 1.103 org.nanohttpd diff --git a/src/main/java/ru/r2cloud/satellite/decoder/Decoders.java b/src/main/java/ru/r2cloud/satellite/decoder/Decoders.java index 7e9cfe08..ff9f2af2 100644 --- a/src/main/java/ru/r2cloud/satellite/decoder/Decoders.java +++ b/src/main/java/ru/r2cloud/satellite/decoder/Decoders.java @@ -11,6 +11,7 @@ import ru.r2cloud.jradio.fox.Fox1BBeacon; import ru.r2cloud.jradio.fox.Fox1CBeacon; import ru.r2cloud.jradio.fox.Fox1DBeacon; +import ru.r2cloud.jradio.geoscan.GeoscanBeacon; import ru.r2cloud.jradio.mrc100.Mrc100Beacon; import ru.r2cloud.jradio.usp.UspBeacon; import ru.r2cloud.model.DecoderKey; @@ -64,7 +65,6 @@ public Decoders(PredictOreKit predict, Configuration props, ProcessFactory proce index("47963", "47963-0", new Diy1Decoder(predict, props)); index("47964", "47964-0", new Smog1Decoder(predict, props)); index("51439", "51439-0", new GaspacsDecoder(predict, props)); - index("53385", "53385-0", new GeoscanDecoder(predict, props)); index("53108", "53108-0", new CcsdsDecoder(predict, props, TransferFrame.class)); index("56993", "56993-0", new Mrc100Decoder(predict, props, Mrc100Beacon.class)); index("56211", "56211-1", new InspireSat7SpinoDecoder(predict, props)); @@ -72,6 +72,11 @@ public Decoders(PredictOreKit predict, Configuration props, ProcessFactory proce index("55104", "55104-0", new Sharjahsat1Decoder(predict, props)); index("56212", "56212-0", new RoseyDecoder(predict, props)); index("53384", "53384-0", new SputnixDecoder(predict, props)); + index("R2CLOUD433", "R2CLOUD433-0", new GeoscanDecoder(predict, props, GeoscanBeacon.class, 74)); + index("R2CLOUD434", "R2CLOUD434-0", new GeoscanDecoder(predict, props, GeoscanBeacon.class, 74)); + index("R2CLOUD435", "R2CLOUD435-0", new GeoscanDecoder(predict, props, GeoscanBeacon.class, 74)); + index("R2CLOUD438", "R2CLOUD438-0", new GeoscanDecoder(predict, props, GeoscanBeacon.class, 74)); + index("R2CLOUD439", "R2CLOUD439-0", new GeoscanDecoder(predict, props, GeoscanBeacon.class, 74)); } public Decoder findByTransmitter(Transmitter transmitter) { diff --git a/src/main/java/ru/r2cloud/satellite/decoder/GeoscanDecoder.java b/src/main/java/ru/r2cloud/satellite/decoder/GeoscanDecoder.java index 1018ab48..16583259 100644 --- a/src/main/java/ru/r2cloud/satellite/decoder/GeoscanDecoder.java +++ b/src/main/java/ru/r2cloud/satellite/decoder/GeoscanDecoder.java @@ -15,8 +15,13 @@ public class GeoscanDecoder extends TelemetryDecoder { - public GeoscanDecoder(PredictOreKit predict, Configuration config) { + private final Class beacon; + private final int beaconSizeBytes; + + public GeoscanDecoder(PredictOreKit predict, Configuration config, Class beacon, int beaconSizeBytes) { super(predict, config); + this.beacon = beacon; + this.beaconSizeBytes = beaconSizeBytes; } @Override @@ -35,12 +40,12 @@ protected BufferedImage decodeImage(List beacons) { @Override public BeaconSource createBeaconSource(ByteInput source, Observation req) { - return new Geoscan(source); + return new Geoscan<>(source, beacon, beaconSizeBytes); } @Override public Class getBeaconClass() { - return GeoscanBeacon.class; + return beacon; } } diff --git a/src/main/java/ru/r2cloud/satellite/decoder/StratosatTk1Decoder.java b/src/main/java/ru/r2cloud/satellite/decoder/StratosatTk1Decoder.java index f3503066..48aa39cd 100644 --- a/src/main/java/ru/r2cloud/satellite/decoder/StratosatTk1Decoder.java +++ b/src/main/java/ru/r2cloud/satellite/decoder/StratosatTk1Decoder.java @@ -6,7 +6,7 @@ import ru.r2cloud.jradio.Beacon; import ru.r2cloud.jradio.BeaconSource; import ru.r2cloud.jradio.ByteInput; -import ru.r2cloud.jradio.sstk1.StratosatTk1; +import ru.r2cloud.jradio.geoscan.Geoscan; import ru.r2cloud.jradio.sstk1.StratosatTk1Beacon; import ru.r2cloud.jradio.sstk1.StratosatTk1PictureDecoder; import ru.r2cloud.model.Observation; @@ -35,7 +35,7 @@ protected BufferedImage decodeImage(List beacons) { @Override public BeaconSource createBeaconSource(ByteInput demodulator, Observation req) { - return new StratosatTk1(demodulator); + return new Geoscan<>(demodulator, StratosatTk1Beacon.class); } @Override diff --git a/src/main/resources/satellites.json b/src/main/resources/satellites.json index 7474117d..cec1f684 100644 --- a/src/main/resources/satellites.json +++ b/src/main/resources/satellites.json @@ -1,4 +1,45 @@ [ + { + "id": "R2CLOUD432", + "name": "SAKURA", + "noradId": "60954", + "enabled": false, + "transmitters": [ + { + "modulation": "AFSK", + "framing": "AX25", + "beaconClass": "ru.r2cloud.jradio.ax25.Ax25Beacon", + "frequency": 145825000, + "bandwidth": 20000, + "baudRates": [ + 1200 + ], + "deviation": 600, + "afCarrier": 1700, + "status": "ENABLED" + } + ] + }, + { + "id": "R2CLOUD431", + "name": "Changshagaoxin", + "noradId": "43665", + "enabled": false, + "transmitters": [ + { + "modulation": "GFSK", + "framing": "AX100", + "beaconClass": "ru.r2cloud.jradio.csp.CspBeacon", + "frequency": 401606000, + "bandwidth": 20000, + "baudRates": [ + 4800 + ], + "deviation": 5000, + "status": "ENABLED" + } + ] + }, { "id": "R2CLOUD430", "name": "PCSAT (NO-44)", @@ -4680,7 +4721,7 @@ "baudRates": [ 2400 ], - "status": "ENABLED" + "status": "WEAK" } ] },