update
@@ -41,6 +41,7 @@
|
||||
this.timer_qpsk = new System.Windows.Forms.Timer(this.components);
|
||||
this.panel_txspectrum = new System.Windows.Forms.Panel();
|
||||
this.tabPage_ber = new System.Windows.Forms.TabPage();
|
||||
this.button6 = new System.Windows.Forms.Button();
|
||||
this.bt_allf = new System.Windows.Forms.Button();
|
||||
this.lb_tuningqrgs = new System.Windows.Forms.Label();
|
||||
this.rtb = new System.Windows.Forms.RichTextBox();
|
||||
@@ -103,6 +104,8 @@
|
||||
this.tb_rtty_TX = new System.Windows.Forms.TextBox();
|
||||
this.tb_rtty_RX = new System.Windows.Forms.TextBox();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.textBox6 = new System.Windows.Forms.TextBox();
|
||||
this.cb_rx_autosync = new System.Windows.Forms.CheckBox();
|
||||
this.rb_rtty_real = new System.Windows.Forms.RadioButton();
|
||||
this.bt_rtty_text6 = new System.Windows.Forms.Button();
|
||||
this.bt_rtty_text5 = new System.Windows.Forms.Button();
|
||||
@@ -152,7 +155,8 @@
|
||||
this.pictureBox3 = new System.Windows.Forms.PictureBox();
|
||||
this.bt_tune_plus = new System.Windows.Forms.Button();
|
||||
this.bt_tune_minus = new System.Windows.Forms.Button();
|
||||
this.cb_marker = new System.Windows.Forms.CheckBox();
|
||||
this.vu_cap = new oscardata.KmProgressBar();
|
||||
this.vu_pb = new oscardata.KmProgressBar();
|
||||
this.pb_audioCAPstatus = new System.Windows.Forms.PictureBox();
|
||||
this.pb_audioPBstatus = new System.Windows.Forms.PictureBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
@@ -193,14 +197,10 @@
|
||||
this.lb_rxsignal = new System.Windows.Forms.Label();
|
||||
this.lb_rxsync = new System.Windows.Forms.Label();
|
||||
this.pn1 = new System.Windows.Forms.Panel();
|
||||
this.pb_rxsignal = new System.Windows.Forms.PictureBox();
|
||||
this.pb_rxsync = new System.Windows.Forms.PictureBox();
|
||||
this.cb_rx_autosync = new System.Windows.Forms.CheckBox();
|
||||
this.textBox6 = new System.Windows.Forms.TextBox();
|
||||
this.progressBar_fifo = new oscardata.KmProgressBar();
|
||||
this.pb_rxsignal = new System.Windows.Forms.PictureBox();
|
||||
this.progressBar_capfifo = new oscardata.KmProgressBar();
|
||||
this.vu_cap = new oscardata.KmProgressBar();
|
||||
this.vu_pb = new oscardata.KmProgressBar();
|
||||
this.pb_rxsync = new System.Windows.Forms.PictureBox();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.tabPage_ber.SuspendLayout();
|
||||
this.tabPage_image.SuspendLayout();
|
||||
@@ -314,6 +314,7 @@
|
||||
// tabPage_ber
|
||||
//
|
||||
this.tabPage_ber.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tabPage_ber.Controls.Add(this.button6);
|
||||
this.tabPage_ber.Controls.Add(this.bt_allf);
|
||||
this.tabPage_ber.Controls.Add(this.lb_tuningqrgs);
|
||||
this.tabPage_ber.Controls.Add(this.rtb);
|
||||
@@ -327,6 +328,16 @@
|
||||
this.tabPage_ber.TabIndex = 0;
|
||||
this.tabPage_ber.Text = "BER Test";
|
||||
//
|
||||
// button6
|
||||
//
|
||||
this.button6.Location = new System.Drawing.Point(638, 18);
|
||||
this.button6.Name = "button6";
|
||||
this.button6.Size = new System.Drawing.Size(145, 23);
|
||||
this.button6.TabIndex = 26;
|
||||
this.button6.Text = "100..2900 (200Hz steps)";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.button6_Click);
|
||||
//
|
||||
// bt_allf
|
||||
//
|
||||
this.bt_allf.Location = new System.Drawing.Point(561, 18);
|
||||
@@ -1116,6 +1127,29 @@
|
||||
this.panel1.Size = new System.Drawing.Size(564, 514);
|
||||
this.panel1.TabIndex = 31;
|
||||
//
|
||||
// textBox6
|
||||
//
|
||||
this.textBox6.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.textBox6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.textBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
|
||||
this.textBox6.Location = new System.Drawing.Point(195, 167);
|
||||
this.textBox6.Multiline = true;
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.ReadOnly = true;
|
||||
this.textBox6.Size = new System.Drawing.Size(93, 35);
|
||||
this.textBox6.TabIndex = 35;
|
||||
this.textBox6.Text = "or double click in spectrum";
|
||||
//
|
||||
// cb_rx_autosync
|
||||
//
|
||||
this.cb_rx_autosync.AutoSize = true;
|
||||
this.cb_rx_autosync.Location = new System.Drawing.Point(195, 146);
|
||||
this.cb_rx_autosync.Name = "cb_rx_autosync";
|
||||
this.cb_rx_autosync.Size = new System.Drawing.Size(93, 17);
|
||||
this.cb_rx_autosync.TabIndex = 34;
|
||||
this.cb_rx_autosync.Text = "RX Auto Sync";
|
||||
this.cb_rx_autosync.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rb_rtty_real
|
||||
//
|
||||
this.rb_rtty_real.AutoSize = true;
|
||||
@@ -1650,7 +1684,6 @@
|
||||
this.groupBox3.Controls.Add(this.pictureBox3);
|
||||
this.groupBox3.Controls.Add(this.bt_tune_plus);
|
||||
this.groupBox3.Controls.Add(this.bt_tune_minus);
|
||||
this.groupBox3.Controls.Add(this.cb_marker);
|
||||
this.groupBox3.Controls.Add(this.vu_cap);
|
||||
this.groupBox3.Controls.Add(this.vu_pb);
|
||||
this.groupBox3.Controls.Add(this.pb_audioCAPstatus);
|
||||
@@ -1712,20 +1745,19 @@
|
||||
this.bt_tune_minus.Visible = false;
|
||||
this.bt_tune_minus.Click += new System.EventHandler(this.bt_tune_minus_Click);
|
||||
//
|
||||
// cb_marker
|
||||
// vu_cap
|
||||
//
|
||||
this.cb_marker.AutoSize = true;
|
||||
this.cb_marker.Checked = true;
|
||||
this.cb_marker.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cb_marker.Location = new System.Drawing.Point(605, 23);
|
||||
this.cb_marker.Name = "cb_marker";
|
||||
this.cb_marker.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
this.cb_marker.Size = new System.Drawing.Size(129, 17);
|
||||
this.cb_marker.TabIndex = 27;
|
||||
this.cb_marker.Text = "100Hz Tuning Marker";
|
||||
this.cb_marker.UseVisualStyleBackColor = true;
|
||||
this.cb_marker.Visible = false;
|
||||
this.cb_marker.CheckedChanged += new System.EventHandler(this.cb_marker_CheckedChanged);
|
||||
this.vu_cap.Location = new System.Drawing.Point(479, 111);
|
||||
this.vu_cap.Name = "vu_cap";
|
||||
this.vu_cap.Size = new System.Drawing.Size(100, 10);
|
||||
this.vu_cap.TabIndex = 20;
|
||||
//
|
||||
// vu_pb
|
||||
//
|
||||
this.vu_pb.Location = new System.Drawing.Point(479, 47);
|
||||
this.vu_pb.Name = "vu_pb";
|
||||
this.vu_pb.Size = new System.Drawing.Size(100, 10);
|
||||
this.vu_pb.TabIndex = 19;
|
||||
//
|
||||
// pb_audioCAPstatus
|
||||
//
|
||||
@@ -2181,49 +2213,6 @@
|
||||
this.pn1.Size = new System.Drawing.Size(538, 74);
|
||||
this.pn1.TabIndex = 30;
|
||||
//
|
||||
// pb_rxsignal
|
||||
//
|
||||
this.pb_rxsignal.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pb_rxsignal.BackgroundImage")));
|
||||
this.pb_rxsignal.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.pb_rxsignal.Location = new System.Drawing.Point(511, 47);
|
||||
this.pb_rxsignal.Name = "pb_rxsignal";
|
||||
this.pb_rxsignal.Size = new System.Drawing.Size(24, 24);
|
||||
this.pb_rxsignal.TabIndex = 17;
|
||||
this.pb_rxsignal.TabStop = false;
|
||||
//
|
||||
// pb_rxsync
|
||||
//
|
||||
this.pb_rxsync.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pb_rxsync.BackgroundImage")));
|
||||
this.pb_rxsync.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.pb_rxsync.Location = new System.Drawing.Point(511, 2);
|
||||
this.pb_rxsync.Name = "pb_rxsync";
|
||||
this.pb_rxsync.Size = new System.Drawing.Size(24, 24);
|
||||
this.pb_rxsync.TabIndex = 19;
|
||||
this.pb_rxsync.TabStop = false;
|
||||
//
|
||||
// cb_rx_autosync
|
||||
//
|
||||
this.cb_rx_autosync.AutoSize = true;
|
||||
this.cb_rx_autosync.Location = new System.Drawing.Point(195, 146);
|
||||
this.cb_rx_autosync.Name = "cb_rx_autosync";
|
||||
this.cb_rx_autosync.Size = new System.Drawing.Size(93, 17);
|
||||
this.cb_rx_autosync.TabIndex = 34;
|
||||
this.cb_rx_autosync.Text = "RX Auto Sync";
|
||||
this.cb_rx_autosync.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// textBox6
|
||||
//
|
||||
this.textBox6.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.textBox6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.textBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
|
||||
this.textBox6.Location = new System.Drawing.Point(195, 167);
|
||||
this.textBox6.Multiline = true;
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.ReadOnly = true;
|
||||
this.textBox6.Size = new System.Drawing.Size(93, 35);
|
||||
this.textBox6.TabIndex = 35;
|
||||
this.textBox6.Text = "or double click in spectrum";
|
||||
//
|
||||
// progressBar_fifo
|
||||
//
|
||||
this.progressBar_fifo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
|
||||
@@ -2235,6 +2224,16 @@
|
||||
this.progressBar_fifo.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
||||
this.progressBar_fifo.TabIndex = 13;
|
||||
//
|
||||
// pb_rxsignal
|
||||
//
|
||||
this.pb_rxsignal.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pb_rxsignal.BackgroundImage")));
|
||||
this.pb_rxsignal.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.pb_rxsignal.Location = new System.Drawing.Point(511, 47);
|
||||
this.pb_rxsignal.Name = "pb_rxsignal";
|
||||
this.pb_rxsignal.Size = new System.Drawing.Size(24, 24);
|
||||
this.pb_rxsignal.TabIndex = 17;
|
||||
this.pb_rxsignal.TabStop = false;
|
||||
//
|
||||
// progressBar_capfifo
|
||||
//
|
||||
this.progressBar_capfifo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128)))));
|
||||
@@ -2245,19 +2244,15 @@
|
||||
this.progressBar_capfifo.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
||||
this.progressBar_capfifo.TabIndex = 15;
|
||||
//
|
||||
// vu_cap
|
||||
// pb_rxsync
|
||||
//
|
||||
this.vu_cap.Location = new System.Drawing.Point(479, 111);
|
||||
this.vu_cap.Name = "vu_cap";
|
||||
this.vu_cap.Size = new System.Drawing.Size(100, 10);
|
||||
this.vu_cap.TabIndex = 20;
|
||||
//
|
||||
// vu_pb
|
||||
//
|
||||
this.vu_pb.Location = new System.Drawing.Point(479, 47);
|
||||
this.vu_pb.Name = "vu_pb";
|
||||
this.vu_pb.Size = new System.Drawing.Size(100, 10);
|
||||
this.vu_pb.TabIndex = 19;
|
||||
this.pb_rxsync.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pb_rxsync.BackgroundImage")));
|
||||
this.pb_rxsync.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.pb_rxsync.Location = new System.Drawing.Point(511, 2);
|
||||
this.pb_rxsync.Name = "pb_rxsync";
|
||||
this.pb_rxsync.Size = new System.Drawing.Size(24, 24);
|
||||
this.pb_rxsync.TabIndex = 19;
|
||||
this.pb_rxsync.TabStop = false;
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
@@ -2273,7 +2268,7 @@
|
||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "Form1";
|
||||
this.Text = "AMSAT-DL Multimedia HS Modem V0.64 by DJ0ABR";
|
||||
this.Text = "AMSAT-DL Multimedia HS Modem V0.71 by DJ0ABR";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
this.statusStrip1.PerformLayout();
|
||||
@@ -2450,7 +2445,6 @@
|
||||
private System.Windows.Forms.Label lb_rec;
|
||||
private System.Windows.Forms.Label lb_tuningqrgs;
|
||||
private System.Windows.Forms.Button bt_allf;
|
||||
private System.Windows.Forms.CheckBox cb_marker;
|
||||
private System.Windows.Forms.PictureBox pictureBox3;
|
||||
private System.Windows.Forms.PictureBox pictureBox4;
|
||||
private System.Windows.Forms.Button bt_tune_minus;
|
||||
@@ -2503,6 +2497,7 @@
|
||||
private System.Windows.Forms.RadioButton rb_rtty_real;
|
||||
private System.Windows.Forms.CheckBox cb_rx_autosync;
|
||||
private System.Windows.Forms.TextBox textBox6;
|
||||
private System.Windows.Forms.Button button6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,8 +57,6 @@ namespace oscardata
|
||||
// init GUI
|
||||
InitializeComponent();
|
||||
|
||||
//showSSTV();
|
||||
|
||||
// needed for ARM mono, which cannot load a picbox directly from file
|
||||
var bmp = new Bitmap(Resources.hintergrundxcf);
|
||||
pictureBox_rximage.BackgroundImage = bmp;
|
||||
@@ -222,8 +220,8 @@ namespace oscardata
|
||||
{
|
||||
if (s.Length > 1)
|
||||
{
|
||||
cb_audioPB.Items.Add(s);
|
||||
cb_loudspeaker.Items.Add(s);
|
||||
cb_audioPB.Items.Add(s.Substring(1));
|
||||
cb_loudspeaker.Items.Add(s.Substring(1));
|
||||
}
|
||||
}
|
||||
cb_loudspeaker.EndUpdate();
|
||||
@@ -240,8 +238,8 @@ namespace oscardata
|
||||
{
|
||||
if (s.Length > 1)
|
||||
{
|
||||
cb_audioCAP.Items.Add(s);
|
||||
cb_mic.Items.Add(s);
|
||||
cb_audioCAP.Items.Add(s.Substring(1));
|
||||
cb_mic.Items.Add(s.Substring(1));
|
||||
}
|
||||
}
|
||||
cb_mic.EndUpdate();
|
||||
@@ -592,7 +590,7 @@ namespace oscardata
|
||||
if (statics.CAPfifousage < progressBar_capfifo.Minimum) progressBar_capfifo.Value = progressBar_capfifo.Minimum;
|
||||
else if (statics.CAPfifousage >= progressBar_capfifo.Maximum) progressBar_capfifo.Value = progressBar_capfifo.Maximum - 1;
|
||||
else progressBar_capfifo.Value = statics.CAPfifousage;
|
||||
if (statics.CAPfifousage > 50) progressBar_capfifo.ForeColor = Color.Red; else progressBar_capfifo.ForeColor = Color.Green;
|
||||
if (statics.CAPfifousage > 80) progressBar_capfifo.ForeColor = Color.Red; else progressBar_capfifo.ForeColor = Color.Green;
|
||||
|
||||
// Show RX Status LEDs
|
||||
if (statics.RXlevelDetected == 1 || statics.RXinSync == 1)
|
||||
@@ -621,7 +619,7 @@ namespace oscardata
|
||||
if (vl < 20 || vl > 85)
|
||||
vu_cap.ForeColor = Color.Red;
|
||||
else
|
||||
vu_cap.ForeColor = Color.Yellow;
|
||||
vu_cap.ForeColor = Color.LightGreen;
|
||||
|
||||
addf = 80;
|
||||
vl = ((double)statics.maxTXlevel / addf) + Math.Log10((double)statics.maxTXlevel + factor);
|
||||
@@ -633,7 +631,7 @@ namespace oscardata
|
||||
if(vl <20 || vl > 85)
|
||||
vu_pb.ForeColor = Color.Red;
|
||||
else
|
||||
vu_pb.ForeColor = Color.Yellow;
|
||||
vu_pb.ForeColor = Color.LightGreen;
|
||||
|
||||
if (recordStatus == 1)
|
||||
{
|
||||
@@ -744,13 +742,20 @@ namespace oscardata
|
||||
Font fnt = new Font("Verdana", 8.0f);
|
||||
Font smallfnt = new Font("Verdana", 6.0f);
|
||||
|
||||
Bitmap lastbm = null;
|
||||
private void panel_txspectrum_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
Bitmap bm = Udp.UdpFftBitmap();
|
||||
if (bm != null)
|
||||
{
|
||||
try { if (lastbm != null) lastbm.Dispose(); } catch { }
|
||||
e.Graphics.DrawImage(bm, 0, 0);
|
||||
bm.Dispose();
|
||||
lastbm = bm;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(lastbm != null)
|
||||
e.Graphics.DrawImage(lastbm, 0, 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1106,6 +1111,7 @@ namespace oscardata
|
||||
//txcommand = statics.noTX; // finished
|
||||
label_rximage.ForeColor = Color.Black;
|
||||
pictureBox_rximage.Image = null;
|
||||
cb_loop.Checked = false;
|
||||
ArraySend.stopSending();
|
||||
bt_resetmodem_Click(null, null);
|
||||
}
|
||||
@@ -1550,7 +1556,6 @@ namespace oscardata
|
||||
bt_resetmodem.Visible = true;
|
||||
bt_tune_minus.Visible = true;
|
||||
bt_tune_plus.Visible = true;
|
||||
cb_marker.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1983,8 +1988,7 @@ namespace oscardata
|
||||
lb_rxsync.Text = "RX Sync:";
|
||||
cb_sendIntro.Text = "send introduction before TX";
|
||||
tb_recintro.Text = "record introduction";
|
||||
lb_tuningqrgs.Text = "Send Mid-Frequency:";
|
||||
cb_marker.Text = "2.9kHz Tuning Marker";
|
||||
lb_tuningqrgs.Text = "Send Marker Frequency:";
|
||||
label13.Text = "Data Security:";
|
||||
textBox5.Text = "Click on Callsign or Name in RX window";
|
||||
textBox2.Text = @"Special Markers:
|
||||
@@ -2063,8 +2067,7 @@ namespace oscardata
|
||||
tb_shutdown.Text = "Vor dem Ausschalten eines SBC diesen hier herunterfahren";
|
||||
cb_sendIntro.Text = "sende Vorstellung vor TX";
|
||||
tb_recintro.Text = "Vorstellung aufnehmen";
|
||||
lb_tuningqrgs.Text = "Sende Mittenfrequenz:";
|
||||
cb_marker.Text = "2,9kHz Tuning Markierung";
|
||||
lb_tuningqrgs.Text = "Sende Frequenzmarkierung:";
|
||||
label13.Text = "Datensicherheit:";
|
||||
textBox5.Text = "Klicke auf Rufzeichen und Namen im RX Fenster";
|
||||
textBox2.Text = @"Spezialzeichen:
|
||||
@@ -2225,15 +2228,12 @@ namespace oscardata
|
||||
|
||||
private void bt_allf_Click(object sender, EventArgs e)
|
||||
{
|
||||
bt_tuning(5);
|
||||
bt_tuning(7);
|
||||
}
|
||||
|
||||
private void cb_marker_CheckedChanged(object sender, EventArgs e)
|
||||
private void button6_Click(object sender, EventArgs e)
|
||||
{
|
||||
Byte[] txdata = new byte[2];
|
||||
txdata[0] = statics.marker;
|
||||
txdata[1] = (Byte)(cb_marker.Checked ? 1 : 0);
|
||||
Udp.UdpSendCtrl(txdata);
|
||||
bt_tuning(1);
|
||||
}
|
||||
|
||||
private void bt_tune_minus_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA+
|
||||
JQAAAk1TRnQBSQFMAgEBFwEAAYgBDAGIAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
JQAAAk1TRnQBSQFMAgEBFwEAAaABDAGgAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAAWADAAEBAQABCAYAARgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
||||
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 954 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 554 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 861 B After Width: | Height: | Size: 861 B |
|
Before Width: | Height: | Size: 915 B After Width: | Height: | Size: 915 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 496 B After Width: | Height: | Size: 496 B |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 784 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 554 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
@@ -122,11 +122,9 @@ namespace oscardata
|
||||
statics.ModemIP = ModIP;
|
||||
searchtimeout = 0;
|
||||
// message b contains audio devices and init status
|
||||
statics.initAudioStatus = b[0];
|
||||
statics.initVoiceStatus = b[1];
|
||||
|
||||
//String s = statics.ByteArrayToString(b,2);
|
||||
String s = statics.ByteArrayToStringUtf8(b, 2);
|
||||
//String s = statics.ByteArrayToString(b,0);
|
||||
String s = statics.ByteArrayToStringUtf8(b, 0);
|
||||
String[] sa1 = s.Split(new char[] { '^' });
|
||||
statics.AudioPBdevs = sa1[0].Split(new char[] { '~' });
|
||||
statics.AudioCAPdevs = sa1[1].Split(new char[] { '~' });
|
||||
@@ -329,6 +327,7 @@ namespace oscardata
|
||||
// bitmap for drawing the complete picture
|
||||
bm = new Bitmap(442, 76);
|
||||
|
||||
int rshift = 14;
|
||||
using (Graphics gr = Graphics.FromImage(bm))
|
||||
{
|
||||
// background
|
||||
@@ -341,8 +340,8 @@ namespace oscardata
|
||||
// RTTY Markers
|
||||
int low = (statics.tune_frequency - 170 / 2)/10;
|
||||
int high = (statics.tune_frequency + 170 / 2)/10;
|
||||
gr.DrawLine(pengn, low + 16, yl, low + 16, yh + 3);
|
||||
gr.DrawLine(pengn, high + 16, yl, high + 16, yh + 3);
|
||||
gr.DrawLine(pengn, low + rshift, yl, low + rshift, yh + 3);
|
||||
gr.DrawLine(pengn, high + rshift, yl, high + rshift, yh + 3);
|
||||
}
|
||||
/*
|
||||
// screws at the 4 corners
|
||||
@@ -366,7 +365,7 @@ namespace oscardata
|
||||
|
||||
us = (int)(fus - 5.0);
|
||||
if(lastus != -1 && i>0)
|
||||
gr.DrawLine(penyl, i/2+15, 76-lastus, i/2+1+15, 76-us); // 15 istead of 16 to get it in exact position
|
||||
gr.DrawLine(penyl, i/2+ rshift, 76-lastus, i/2+1+ rshift, 76-us); // 15 istead of 16 to get it in exact position
|
||||
lastus = us;
|
||||
}
|
||||
}
|
||||
@@ -376,6 +375,7 @@ namespace oscardata
|
||||
// Udp TX Loop runs in its own thread
|
||||
static void Udptxloop()
|
||||
{
|
||||
DateTime dt = DateTime.UtcNow;
|
||||
UdpClient udpc = new UdpClient();
|
||||
|
||||
while (statics.running)
|
||||
@@ -392,11 +392,19 @@ namespace oscardata
|
||||
if(statics.PBfifousage < 3)
|
||||
{
|
||||
// we need to send more payload data
|
||||
if (uq_tx.Count() > 0)
|
||||
// but never send faster than 1000 Byte/s
|
||||
// because statics.PBfifousage may be updated too slow
|
||||
//DateTime dtact = DateTime.UtcNow;
|
||||
//TimeSpan ts = dtact - dt;
|
||||
//if (ts.TotalMilliseconds > statics.UdpBlocklen)
|
||||
{
|
||||
Byte[] b = uq_tx.Getarr();
|
||||
udpc.Send(b, b.Length, statics.ModemIP, statics.UdpTXport);
|
||||
wait = false;
|
||||
if (uq_tx.Count() > 0)
|
||||
{
|
||||
Byte[] b = uq_tx.Getarr();
|
||||
udpc.Send(b, b.Length, statics.ModemIP, statics.UdpTXport);
|
||||
wait = false;
|
||||
//dt = dtact;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (wait) Thread.Sleep(1);
|
||||
@@ -440,25 +448,6 @@ namespace oscardata
|
||||
return uq_rx.Getarr();
|
||||
}
|
||||
|
||||
public static UInt16[] UdpGetFFT()
|
||||
{
|
||||
if (uq_fft.Count() == 0) return null;
|
||||
|
||||
Byte[] d = uq_fft.Getarr();
|
||||
UInt16[] varr = new UInt16[d.Length / 2];
|
||||
int j = 0;
|
||||
for (int i = 0; i < d.Length; i += 2)
|
||||
{
|
||||
if ((i + 1) >= d.Length) break;
|
||||
UInt16 us = d[i];
|
||||
us <<= 8;
|
||||
us += d[i + 1];
|
||||
if (j >= (varr.Length)) break;
|
||||
varr[j++] = us;
|
||||
}
|
||||
return varr;
|
||||
}
|
||||
|
||||
public static qpskitem UdpGetIQ()
|
||||
{
|
||||
if (uq_iq.Count() == 0) return null;
|
||||
|
||||