mirror of
https://github.com/dnet/pySSTV.git
synced 2025-12-06 07:12:00 +01:00
color: Implement Scottie DX, Wraase SC-2 120 and Wraase SC-2 180. (#37)
* color: Implement Wraase SC-2 120 and 180. * color: Implement Scottie DX * color: Re-factor Wraase modes `ColorSSTV` parent class actually implements the scan-line encoding we need, however the challenge is that it seems the sync pulse requirements differ for SC2-120 and SC2-180 just slightly. I haven't figured out why, partially because there seems to be little in the way of clear (and correct!) docs as to how SC2-120 is supposed to work. * color: Fix Scottie DX timing Using actual reference timing values from N7CXI Dayton paper.
This commit is contained in:
parent
bc74dc98d6
commit
b43208287f
|
|
@ -77,6 +77,12 @@ class ScottieS2(ScottieS1):
|
||||||
WIDTH = 160
|
WIDTH = 160
|
||||||
|
|
||||||
|
|
||||||
|
class ScottieDX(ScottieS1):
|
||||||
|
VIS_CODE = 0x4c
|
||||||
|
# http://www.barberdsp.com/downloads/Dayton%20Paper.pdf
|
||||||
|
SCAN = 345.6000 - ScottieS1.INTER_CH_GAP
|
||||||
|
|
||||||
|
|
||||||
class Robot36(ColorSSTV):
|
class Robot36(ColorSSTV):
|
||||||
VIS_CODE = 0x08
|
VIS_CODE = 0x08
|
||||||
WIDTH = 320
|
WIDTH = 320
|
||||||
|
|
@ -201,5 +207,49 @@ class PD290(PD240):
|
||||||
PIXEL = 0.286
|
PIXEL = 0.286
|
||||||
|
|
||||||
|
|
||||||
MODES = (MartinM1, MartinM2, ScottieS1, ScottieS2, Robot36,
|
class WraaseSC2180(ColorSSTV):
|
||||||
PasokonP3, PasokonP5, PasokonP7, PD90, PD120, PD160, PD180, PD240, PD290)
|
VIS_CODE = 0x37
|
||||||
|
WIDTH = 320
|
||||||
|
HEIGHT = 256
|
||||||
|
COLOR_SEQ = (Color.red, Color.green, Color.blue)
|
||||||
|
|
||||||
|
SYNC = 5.5225
|
||||||
|
PORCH = 0.5
|
||||||
|
SCAN = 235.0
|
||||||
|
|
||||||
|
def before_channel(self, color):
|
||||||
|
if color is Color.red:
|
||||||
|
yield FREQ_BLACK, self.PORCH
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
def after_channel(self, color):
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
class WraaseSC2120(WraaseSC2180):
|
||||||
|
VIS_CODE = 0x3f
|
||||||
|
|
||||||
|
# NB: there are "authoritative" sounding documents that will tell you SC-2
|
||||||
|
# 120 uses red and blue channels that have half the line width of the
|
||||||
|
# green channel. Having spent several hours trying to nut out why SC2-120
|
||||||
|
# images weren't decoding in anything else, I can say this is utter
|
||||||
|
# bunkum. The line width is the same for all three channels, just
|
||||||
|
# shorter.
|
||||||
|
|
||||||
|
SCAN = 156.0
|
||||||
|
|
||||||
|
def before_channel(self, color):
|
||||||
|
# Not sure why, but SC2-120 decoding seems to need an extra few sync
|
||||||
|
# pulses to decode in QSSTV and slowrx. Take the extra pulse out, and
|
||||||
|
# it slants something chronic and QSSTV loses sync regularly even on
|
||||||
|
# DX mode. Put it in, and both decode reliably. Go figure. SC2-180
|
||||||
|
# works just fine without this extra pulse at the start of each
|
||||||
|
# channel.
|
||||||
|
yield FREQ_BLACK, self.PORCH
|
||||||
|
yield from super().before_channel(color)
|
||||||
|
|
||||||
|
|
||||||
|
MODES = (MartinM1, MartinM2, ScottieS1, ScottieS2, ScottieDX, Robot36,
|
||||||
|
PasokonP3, PasokonP5, PasokonP7, PD90, PD120, PD160, PD180, PD240,
|
||||||
|
PD290, WraaseSC2120, WraaseSC2180)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue