This commit is contained in:
Kurt Moraw
2020-11-21 19:54:47 +01:00
parent e335d4efbf
commit 327efc82e3
112 changed files with 7468 additions and 591 deletions
+3 -2
View File
@@ -176,8 +176,9 @@ namespace oscardata
{
// send as the last frame
Array.Copy(txdata, txpos, txarr, 0, restlen); // unused byte will be 0
txudp(txarr, txtype, statics.LastFrame);
txudp(txarr, txtype, statics.LastFrame);
// send the last frame a couple of times
for(int i=0; i<10; i++)
txudp(txarr, txtype, statics.LastFrame);
setSending(false); // transmission complete
}
else
+703 -220
View File
File diff suppressed because it is too large Load Diff
+329 -18
View File
@@ -29,6 +29,7 @@ using System.Text;
using System.IO;
using System.Drawing.Drawing2D;
using System.Diagnostics;
using System.Threading;
namespace oscardata
{
@@ -42,6 +43,8 @@ namespace oscardata
String old_tsip = "";
bool modemrunning = false;
receivefile recfile = new receivefile();
int last_initAudioStatus;
int last_initVoiceStatus;
public Form1()
{
@@ -60,6 +63,8 @@ namespace oscardata
else
statics.ostype = 1; // Linux
statics.CreateAllDirs();
// set temp paths
statics.zip_TXtempfilename = statics.addTmpPath(statics.zip_TXtempfilename);
statics.zip_RXtempfilename = statics.addTmpPath(statics.zip_RXtempfilename);
@@ -192,19 +197,42 @@ namespace oscardata
{
statics.GotAudioDevices = 2;
// populate combo boxes
cb_audioPB.BeginUpdate();
cb_audioPB.Items.Clear();
cb_loudspeaker.BeginUpdate();
cb_loudspeaker.Items.Clear();
foreach (String s in statics.AudioPBdevs)
{
if(s.Length > 1)
if (s.Length > 1)
{
cb_audioPB.Items.Add(s);
cb_loudspeaker.Items.Add(s);
}
}
cb_loudspeaker.EndUpdate();
cb_audioPB.EndUpdate();
// check if displayed text is available in the item list
findDevice(cb_loudspeaker);
findDevice(cb_audioPB);
cb_audioCAP.BeginUpdate();
cb_audioCAP.Items.Clear();
cb_mic.BeginUpdate();
cb_mic.Items.Clear();
foreach (String s in statics.AudioCAPdevs)
{
if (s.Length > 1)
{
cb_audioCAP.Items.Add(s);
cb_mic.Items.Add(s);
}
}
cb_mic.EndUpdate();
cb_audioCAP.EndUpdate();
findDevice(cb_mic);
findDevice(cb_audioCAP);
}
if (setPBvolume >= 0)
{
Byte[] txdata = new byte[2];
@@ -222,15 +250,124 @@ namespace oscardata
Udp.UdpSendCtrl(txdata);
setCAPvolume = -1;
}
if (setLSvolume >= 0)
{
Byte[] txdata = new byte[2];
txdata[0] = (Byte)statics.SetLSvolume;
txdata[1] = (Byte)setLSvolume;
Udp.UdpSendCtrl(txdata);
setLSvolume = -1;
}
if (setMICvolume != -1)
{
Byte[] txdata = new byte[2];
txdata[0] = (Byte)statics.SetMICvolume;
txdata[1] = (Byte)setMICvolume;
Udp.UdpSendCtrl(txdata);
setMICvolume = -1;
}
if (last_initAudioStatus != statics.initAudioStatus)
{
if ((statics.initAudioStatus & 1) == 1)
pb_audioPBstatus.BackgroundImage = Properties.Resources.fail;
else
pb_audioPBstatus.BackgroundImage = Properties.Resources.ok;
if ((statics.initAudioStatus & 2) == 2)
pb_audioCAPstatus.BackgroundImage = Properties.Resources.fail;
else
pb_audioCAPstatus.BackgroundImage = Properties.Resources.ok;
last_initAudioStatus = statics.initAudioStatus;
}
if (last_initVoiceStatus != statics.initVoiceStatus)
{
if ((statics.initVoiceStatus & 1) == 1)
pb_voicePBstatus.BackgroundImage = Properties.Resources.fail;
else
pb_voicePBstatus.BackgroundImage = Properties.Resources.ok;
if ((statics.initVoiceStatus & 2) == 2)
pb_voiceCAPstatus.BackgroundImage = Properties.Resources.fail;
else
pb_voiceCAPstatus.BackgroundImage = Properties.Resources.ok;
last_initVoiceStatus = statics.initVoiceStatus;
}
}
// correct entries in the Audio Device Comboboxes if Devices have changed
void findDevice(ComboBox cb)
{
int pos = -1;
if (cb.Text.Length >= 4)
{
// Device Name starts at Index 3 in the string
String dn = cb.Text.Substring(3);
int anz = cb.Items.Count;
for (int i = 0; i < anz; i++)
{
String name = cb.Items[i].ToString();
name = name.Substring(3);
if (dn == name)
{
pos = i;
break;
}
}
}
if (pos == -1)
{
// not available, reset to first item which usually is Default
if (cb.Items.Count == 0)
cb.Text = "no sound devices available";
else
cb.Text = cb.Items[0].ToString();
}
else
cb.Text = cb.Items[pos].ToString();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
save_Setup();
if (cb_autostart.Checked)
{
statics.killall("hsmodem");
statics.killall("hsmodem.exe");
// tell hsmodem to terminate itself
Byte[] txdata = new byte[1];
txdata[0] = (Byte)statics.terminate;
Udp.UdpSendCtrl(txdata);
Thread.Sleep(250);
if (statics.ostype == 0)
{
int to = 0;
while(statics.isProcRunning("hsmodem.exe"))
{
Thread.Sleep(250);
// tell hsmodem to terminate itself
Udp.UdpSendCtrl(txdata);
if (++to >= 10) break; // give up after 2,5s
}
if (to >= 10)
statics.killall("hsmodem.exe");
}
else
{
Thread.Sleep(250);
statics.killall("hsmodem");
}
}
// exit the threads
statics.running = false;
@@ -264,13 +401,6 @@ namespace oscardata
rxbytecounter += statics.UdpBlocklen;
trackBar_maxlevel.Value = maxlevel;
int v1 = 255;
int v2 = 220;
if (maxlevel < 20 || maxlevel > 70) trackBar_maxlevel.BackColor = Color.FromArgb(v1,v2,v2);
else if (maxlevel < 30 || maxlevel > 60) trackBar_maxlevel.BackColor = Color.FromArgb(v1, v1, v2);
else trackBar_maxlevel.BackColor = Color.FromArgb(v2, v1, v2);
Byte[] rxdata = new byte[rxd.Length - 10];
Array.Copy(rxd, 10, rxdata, 0, rxd.Length - 10);
@@ -334,6 +464,10 @@ namespace oscardata
printText(rtb_RXfile, "transmission speed: " + ((int)(recfile.filesize * 8 / recfile.runtime.TotalSeconds)).ToString() + " bit/s" + "\r\n\r\n");
printText(rtb_RXfile, "file size : " + recfile.filesize + " byte\r\n\r\n");
printText(rtb_RXfile, "file name : " + recfile.filename + "\r\n\r\n");
if(recfile.filename.Length <= 1)
{
printText(rtb_RXfile, "file status : not complete, retransmit\r\n\r\n");
}
}
}
@@ -378,6 +512,11 @@ namespace oscardata
if (statics.PBfifousage < progressBar_fifo.Minimum) progressBar_fifo.Value = progressBar_fifo.Minimum;
else if (statics.PBfifousage >= progressBar_fifo.Maximum) progressBar_fifo.Value = progressBar_fifo.Maximum-1;
else progressBar_fifo.Value = statics.PBfifousage;
progressBar_capfifo.Invalidate();
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;
}
private void panel_constel_Paint(object sender, PaintEventArgs e)
@@ -877,14 +1016,18 @@ namespace oscardata
label_txfile.Location = new Point(rtb_TXfile.Location.X, ly);
label_rxfile.Location = new Point(rtb_RXfile.Location.X, ly);
trackBar_maxlevel.Location = new Point(panel_txspectrum.Location.X + panel_txspectrum.Size.Width + 5, panel_txspectrum.Location.Y);
trackBar_maxlevel.Size = new Size(20, panel_txspectrum.Size.Height);
label_speed.Location = new Point(trackBar_maxlevel.Location.X + trackBar_maxlevel.Size.Width + 15,panel_txspectrum.Location.Y+10);
label_speed.Location = new Point(panel_txspectrum.Location.X + panel_txspectrum.Size.Width + 15,panel_txspectrum.Location.Y+10);
cb_speed.Location = new Point(label_speed.Location.X + label_speed.Size.Width + 10, label_speed.Location.Y-5);
label_fifo.Location = new Point(label_speed.Location.X, label_speed.Location.Y + 35);
progressBar_fifo.Location = new Point(cb_speed.Location.X, cb_speed.Location.Y + 35);
int y = 26;
label_fifo.Location = new Point(label_speed.Location.X, label_speed.Location.Y + y);
progressBar_fifo.Location = new Point(cb_speed.Location.X, cb_speed.Location.Y + y+5);
progressBar_fifo.Size = new Size(progressBar_fifo.Width, 18);
y = 20;
label_capfifo.Location = new Point(label_fifo.Location.X, label_fifo.Location.Y + y);
progressBar_capfifo.Location = new Point(progressBar_fifo.Location.X, progressBar_fifo.Location.Y + y);
progressBar_capfifo.Size = new Size(progressBar_capfifo.Width, 18);
}
public String GetMyBroadcastIP()
@@ -923,6 +1066,24 @@ namespace oscardata
return x;
}
Byte getLSaudioDevice()
{
String s = cb_loudspeaker.Text;
Byte x = (Byte)cb_loudspeaker.Items.IndexOf(s);
Console.WriteLine("LS:" + s + " " + x);
//if (s.ToUpper() == "DEFAULT") x = 255;
return x;
}
Byte getMICaudioDevice()
{
String s = cb_mic.Text;
Byte x = (Byte)cb_mic.Items.IndexOf(s);
Console.WriteLine("MIC:" + s + " " + x);
//if (s.ToUpper() == "DEFAULT") x = 255;
return x;
}
/*
* search for the modem IP:
* send a search message via UDP to port UdpBCport
@@ -933,13 +1094,15 @@ namespace oscardata
private void search_modem()
{
Byte[] txb = new byte[6];
Byte[] txb = new byte[8];
txb[0] = 0x3c; // ID of this message
txb[1] = getPBaudioDevice();
txb[2] = getCAPaudioDevice();
txb[3] = (Byte)tb_PBvol.Value;
txb[4] = (Byte)tb_CAPvol.Value;
txb[5] = (Byte)cb_announcement.Items.IndexOf(cb_announcement.Text);
txb[6] = (Byte)tb_loadspeaker.Value;
txb[7] = (Byte)tb_mic.Value;
Udp.UdpBCsend(txb, GetMyBroadcastIP(), statics.UdpBCport_AppToModem);
@@ -1128,6 +1291,17 @@ namespace oscardata
s = ReadString(sr);
try { cb_stampinfo.Checked = (s == "1"); } catch { }
try { tb_info.Text = ReadString(sr); } catch { }
try { cb_loudspeaker.Text = ReadString(sr); } catch { }
try { cb_mic.Text = ReadString(sr); } catch { }
try { tb_loadspeaker.Value = ReadInt(sr); } catch { }
try { tb_mic.Value = ReadInt(sr); } catch { }
try
{
s = ReadString(sr);
rb_opus.Checked = (s == "1");
rb_codec2.Checked = (s != "1");
}
catch { }
}
}
catch
@@ -1158,6 +1332,11 @@ namespace oscardata
sw.WriteLine(cb_announcement.Text);
sw.WriteLine(cb_stampinfo.Checked ? "1" : "0");
sw.WriteLine(tb_info.Text);
sw.WriteLine(cb_loudspeaker.Text);
sw.WriteLine(cb_mic.Text);
sw.WriteLine(tb_loadspeaker.Value.ToString());
sw.WriteLine(tb_mic.Value.ToString());
sw.WriteLine(rb_opus.Checked ? "1" : "0");
}
}
catch { }
@@ -1208,5 +1387,137 @@ namespace oscardata
{
setCAPvolume = tb_CAPvol.Value;
}
private void bt_blockinfo_Click(object sender, EventArgs e)
{
String s;
int[] d = new int[2];
recfile.oldblockinfo(d);
int failed = d[0] - d[1];
s = "Received Blocks\n" +
"---------------\n" +
"total : " + d[0] + "\n" +
"good : " + d[1] + "\n" +
"failed: " + failed + "\n";
if(failed > 1)
{
s += "\nfile incomplete, ask for retransmission";
}
Form2_showtext sf = new Form2_showtext("Block Info",s);
sf.ShowDialog();
}
void setVoiceAudio()
{
Byte[] txdata = new byte[5];
txdata[0] = (Byte)statics.SetVoiceMode;
txdata[1] = (Byte)getLSaudioDevice();
txdata[2] = (Byte)getMICaudioDevice();
Byte opmode = 0;
// values see: hsmodem.h _VOICEMODES_
if (cb_switchtoLS.Checked) opmode = 1;
if (cb_voiceloop.Checked) opmode = 2;
if (cb_codecloop.Checked) opmode = 3;
if (cb_digitalVoice.Checked) opmode = 4;
if (cb_digitalVoiceRXonly.Checked) opmode = 5;
if(opmode == 0) pb_voice.BackgroundImage = null;
txdata[3] = opmode;
Byte codec;
if (rb_opus.Checked) codec = 0;
else codec = 1;
txdata[4] = codec;
Udp.UdpSendCtrl(txdata);
if(opmode > 0)
{
rb_opus.Enabled = false;
rb_codec2.Enabled = false;
}
else
{
rb_opus.Enabled = true;
rb_codec2.Enabled = true;
}
}
private void cb_switchtoLS_CheckedChanged(object sender, EventArgs e)
{
if(cb_switchtoLS.Checked)
{
cb_voiceloop.Checked = false;
cb_codecloop.Checked = false;
cb_digitalVoice.Checked = false;
cb_digitalVoiceRXonly.Checked = false;
pb_voice.BackgroundImage = Properties.Resources.cdc_digital;
}
setVoiceAudio();
}
private void cb_voiceloop_CheckedChanged(object sender, EventArgs e)
{
if (cb_voiceloop.Checked)
{
cb_switchtoLS.Checked = false;
cb_codecloop.Checked = false;
cb_digitalVoice.Checked = false;
cb_digitalVoiceRXonly.Checked = false;
pb_voice.BackgroundImage = Properties.Resources.cdc_intloop;
}
setVoiceAudio();
}
private void cb_codecloop_CheckedChanged(object sender, EventArgs e)
{
if (cb_codecloop.Checked)
{
cb_switchtoLS.Checked = false;
cb_voiceloop.Checked = false;
cb_digitalVoice.Checked = false;
cb_digitalVoiceRXonly.Checked = false;
pb_voice.BackgroundImage = Properties.Resources.cdc_codecloop;
}
setVoiceAudio();
}
private void cb_digitalVoice_CheckedChanged(object sender, EventArgs e)
{
if (cb_digitalVoice.Checked)
{
cb_switchtoLS.Checked = false;
cb_voiceloop.Checked = false;
cb_codecloop.Checked = false;
cb_digitalVoiceRXonly.Checked = false;
pb_voice.BackgroundImage = Properties.Resources.cdc_dv;
}
setVoiceAudio();
}
private void cb_digitalVoiceRXonly_CheckedChanged(object sender, EventArgs e)
{
if (cb_digitalVoiceRXonly.Checked)
{
cb_switchtoLS.Checked = false;
cb_voiceloop.Checked = false;
cb_codecloop.Checked = false;
cb_digitalVoice.Checked = false;
pb_voice.BackgroundImage = Properties.Resources.cdc_dvrx;
}
setVoiceAudio();
}
int setLSvolume = -1;
int setMICvolume = -1;
private void tb_loadspeaker_Scroll(object sender, EventArgs e)
{
setLSvolume = tb_loadspeaker.Value;
}
private void tb_mic_Scroll(object sender, EventArgs e)
{
setMICvolume = tb_mic.Value;
}
}
}
+152
View File
@@ -129,6 +129,158 @@
<metadata name="timer_qpsk.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>371, 17</value>
</metadata>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>644, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABw
FwAAAk1TRnQBSQFMAgEBDQEAAbABAAGwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wQAARoBmQEbAf8CAAH/
AfQBGgGZAf81AAF0ATIBNwFLAfEB9AF0ATEBOAEyAfM1AAF5AzgCNwM4ATEB8zUAAZkEOAH7AzgBMQH0
NQABmQg4ATEB9jUAAZkEegJZAjgBMQH0MwAB/wGZAVgIegFZAXkB/zIAARoBWQt6AVIB/zAAAfQBeQ16
ARowAAHzAVIMegF5AZkxAAH2ARsBGgGZBnoBmQEaARsB9AH/NQABGwF6ApoBegF5Af85AAH/AXkCoAF6
AfY7AAH2AXoBoAEaPQABGwGaAf93AAH/DPIB9AH/BwABBwHsAeoBbQHqAewBvBMABP8B9AHzAQcB7wHw
AfQF/wEAAZMDRQZGBEUB9AkAAW0BEwHsBgAC/wn2Af8FAAH0AfAB9wEUARECEAYAAf8BbwIfAUYGJQFG
ASQBHwFFAfIDAAH0BfMBbQFDAZIFAAH/AZkBUwkyAXUB/wEAAf8BBwHwAfEB9AH/AfMCBwHyAwAB/wIA
Af8BbwEfAW8B9AF0ASUCJgIlARsBkwEfAUUB8gMAAe0BEQFEAQEBRAIRAQ8BkgUAAf8CUwGaAVMBwwFZ
AcMBWQQyAfYBAAH/AfIB8AERAfQHAAHxAUMB8wEAAf8BbwEfAZMC8wF1AiwBTQHxAfMB8AFFASQB8gQA
Af8BRQEfAW4B/wHrAQ4B7QUAAf8BMgFTARoBWQH/AVkB/wFZBDIB9gEAAfQB7AETAQ8B8gcAAe8BEQEV
AfEB/wFvAR8BJAGTAfIB8QF1ASwBvAHxAbwBJAEfASQB8gUAAW8BIAGTAQABbQEAAe0FAAH/AzIBmgHD
AVkB/wE4BDIB9gEAAfQBDgHqARAB8gcAAe8BQwEVAZIB/wFvAh8BJAGTAfEB8AK8AQcBRgMfAfIFAAFv
ASABkwEAAW0BAAHtBQAB/wEyAVMBGgGaAVMBmgF6BTIB9gEAAfQB6gHrAUMB8gcAAe8BEwHqAQcB/wFv
AQEBHwEkAUYBHAHxAfABBwElAh8BAQEfAfIFAAFvASABkwEAAesBEAHtBQAB/wEsAjIBWQH2ARoBUwUy
AfYCAAEHAe0BFAHyBwAB7wFtAewB8AH/AW8BRQFGAUwBbwPxAfABkwFvAUYCRQHyBAAB/wFuASABkwEA
AesBDwGSAwAB8wEAAf8BUwF6AcMBGgGaAXoBWQJ6A1MB/wIAAfIBvAESAfMHAAEHAesB8AHzAf8EbwHx
AfIBvAEHAfEB8gGTA28B8gQAAfMBCwEfAZMBAAHrAREBkgMAARMBAAH/AVMDdQR6BHUB/wIAAfQBvAH/
CQAB/wHvAf8BAAJvAZMC8wG8AZMBbwEHAfIB8wGTAm8B8wQAAfQBDwEBAZMBAAHrAUMBkgEAAf8BvAER
AQAB/wFTCnoBdQH/AgAB/wGSAfQJAAHyAe8B/wEAAm8BvAHzAfAEbwHvAvMBkwFvAfMEAAH/AREBEAFD
AW0BQwIVAW0BFAERARQBAAH/AVMKegF1Af8DAAH/AfIJAAHyAwADkwEHBpMB7wOTAfMB9AFvAgAB/wIS
AW0D7QFEAu0B7AGSAQAB/wF1CpoBegH/BAABvAHvAf8FAAH0AewB8QMADpMB8wH/AUUB/wIAARwB7QHv
AgAB8QFFBQAB/wEbAXoJdQEaAf8EAAH/AkMBvAL/AfQBBwEQAW0B/wMAAfMMkwEaAv8CbgLvAW4B9wHs
Ae8BkwJuBgAM/wYAAf8B7wETAw4BFAEHAf8TAAH/C28bAAH/AfMB/wYABP8C9AHvAewBkgHyAfQF/wMA
C/8CAAH/AfAB7wHyAf8HAAH/AfMBGgH/EwAB9AESAewE7wHsAfAFAAH/AfQK8gHzAf8BAAH/AQcB/wHv
AfIB/wUAAf8B8gFSATgBGgQAAfQBCAwAAfAC7ALwAv8B9AGSAfAB7QQAAf8B8gHxAQgCvAHwAQgEGwLz
Av8BBwG8AewB7QHyAf8DAAH/AfABUgI4AZkEAAHyAU8BlwH0CQAB/wHsAW0D/wL0Av8BBwHzAQcDAAH0
AfMBcgEoAS4BLwF4AS8ENQEbAfIB/wEAAfQBBwEUAQ8B7QH0Af8BAAH/AfIBMQE4AVkBdAH/BAAB8gIt
AU8B/wgAAeoBbQH0AbwD9AHzAfQBBwH0AZIBBwMAAfQB8wFyAigCmAIvAzUBGwHyAf8BAAH/AfQB7wET
ARQB9wH0Af8B8wFSAlkBmQH/BQAB8gIzAS0BTwG8Af8FAAH/Ae0BvAT0AfMB8gT0AfEBBwIAAfQB8wFy
AigB/wEIBS8BCAHyAf8DAAH/AQcBEgFDAe8BvAExATgBWQGZAf8GAAHyAjMCLQECAZgB/wQAAfAB7AH0
AfMC9AEHAfQBGgP0AfAB7QHsAgAB9AHzAXICKAH/AfQBUAEuAXgBUAEvAbwB8gH/BAAB/wEHAhIB7QFZ
ATIB8wH/BwAB8gIzAS0CAgEnAXIB9AMAAQcB7AL0AvMB9AEfAbwE9AHtAe8BDgEAAfQB8wFyAigB9AL/
AbwB/wFQASgBvAHyAf8FAAH/Ae8B7AHwAfcBvAH/CAAB8gMtAgIBJwEhAUkB9AIAAbwBkgLzAfAC8wEH
Ae0E8wHtAe8B/wEAAfQB8wFyAigBUAH0A/8BUAEoAbwB8gH/BQAB/wIHAewB6wEHAfMC/wYAAfEGTwFJ
AZgB/wIAAf8BBwHxAfMB8gHzAZMC8wEHAvMB8QHwAQcCAAH0AfMBcgMoAZgD/wFQASgBvAHyAf8EAAH/
AQcB8QHyAQcB7wHsAesB7AHvAfQB/wQAAfEGTwEIBQABBwHrAfMB7wHzARoD8wHwAfEB7AHzAf8CAAH0
AfMBcgIoAVAECAFKASgBvAHyAf8DAAH0AQcBvAHyAv8B8AHsAe0B7wLtAfQEAAHxAU8EcgHxAf8FAAHz
AfEB7AHyAfAD8wHyAbwB7AHxAe8DAAH0AfMBcgkoAbwB8gH/AgAB/wEHAfIB8wMAAfIBvAEHAbwC7wHx
BAAB8QFyAZcBcgFJAfQIAAEHAfMB6wHvAfcBBwHvAe0BbQHwAe0B9wHtAf8BAAH0AfMBHAlyAfEB8gL/
AfMB7wG8AfMB/wMAAfQBBwHyAQcB9AH/AfQEAAHxAnIB7wH/CgAC8wG8Ae0C7AEHAfMBBwHyAbwB9AEH
AQAB/wHwCvMB8gH0AQAB/wIHAfMFAAH/Ae8B9AHvAfMB/wUAAfEBTwEIAf8NAAHzAbwBBwG8AfICAAHy
AfQBAAG8AQAC/wr0Av8BAAH/AfEB8gH/BQAB/wHyAfAB8wEHAfQFAAH/AfMXAALxHAAB/wHzAf8cAAH/
AfADmAH0IAAF/wH0Cv8B9A3yAZEB7xAAEP8QAAHxAvQC/wHvA/8B8gHxAfQBCAG7AfABkQQAAQEBHgQA
Af8BRQEBAwAB8wHwBfIC8QbyAfABAAG8ArQLtQH/AfIC9AL/Ae8D/wHyAfEBcgFxAZEBSQFyAwABAQH5
AUcBCwIAAf8BHgH5ARcBAQIAAfIB8wP/AfMBuwK0AQkB9AT/AfABAAH3AUMBFQJKAUQBQwERA0MBFQFD
ARMB9AHyAvQC/wHvA/8B8gHxAUkC/wEHAXECAAGTAW8C+QFHAQsB/wELA/kBRQIAAfIB8wL/AfQBtAGz
AgkCtAHxA/8B8AEAAfcBEQFDAkoBFQMQAhEBQwERAWYB9AHyBAcB7AG8AvACvAFJAfMB9AHxAXIDAAJv
AiABRgEOAyABAQH/AgAB8gHzAv8CiwG0AgkBtAGLAa4D/wHwAQAB9wEQAUMCSgFEAREDEAMRARUB9AHy
BLwBkgHwAvEB8AG8AUkB7wHwAewB7wQAAW8BTAUgAQEB/wMAAfIB8wH/AQcBhgGtAbQBCQG6AbMBrQGG
AQcC/wHwAQAB9wIUAkoBFAERARABDwQOARUB9AHyAfQBBwEIAf8BBwH/AfIB/wHzAfEB8AFJAQ0B7QH/
BQABbwFMAyABHwH/BAAB8gHzAf8BtQGGArQCswGtAosBrgL/AfEBAAHvAusBbQHqARIBFAEVAREBEAIP
ARABFQH0AfIC8wEHAfQBBwH/AbwB/wHzAfED/wHyAf8EAAH/AR8DRgFvAUYBHwQAAfIB8wH/AbUBhgG7
AQkBtAGtAosBzwGuAv8B8QEAAQcBkwF0AXkCegJTAkwDKwFLAfQB8gHzAQcBvAH0AQcB/wHwAf8B8wHy
A/8B8wQAAf8BHwNGAXQCRgFvAR8DAAHyAfMB/wK1AgkBtAKLAYYBiwG1Av8B8QEAAQcBlAGaAqABegF1
AlMETQFvAfQB8gG8AwcB9wG8BPAB8wH0Af8B8wMAAf8BHwNvAQEBbgF0Am8BFgEfAgAB8gHzAf8B8wG1
AQcBCQG0Ac8CiwGuAfQC/wHxAQABBwKUA5oDdQLjAhcBbwH0BfMBBwP0AfMB8gP/AfMDAAEaAUwCFgEf
Af8BAAFvAxYBHwIAAfIB8wL/AfABtQEJAa4BtAGuAc8BvAP/AfEBAAEHBrcDlAOxAY4B9ALzAggB8wG8
A/QB8wHyA/8B8wQAARoBTAEfAf8DAAFvARYBHwMAAvID8wG8ArUBrgG1AbwE8wHxAQABBwHPDLUB9ALz
AfIBBwHzAfAE8wHyA/QB8wUAARoB/wUAAZMEAAHyCfAC7wO1AfABAAG7A60DswK0BdUB9ALzAvAB8wHw
BfMD9AHzEQAB9Am8AQcBvAMHAfIBAAHyBQkE3QQZAv8G8gfzAf8xAAFCAU0BPgcAAT4DAAEoAwABQAMA
AUADAAEBAQABAQYAAQIWAAP/AQAB4QGDBgAB4AEDBgAB4AEDBgAB4AEDBgAB4AEDBgAB4AEDBgABgAEB
BgABgBcAAYAHAAH4AQ8GAAH4AR8GAAH8AT8GAAH+AT8GAAL/BgABgAEAAf4BAwL/AYABAAGAAQAB/wGP
AcABAwHgAT8CAAHgAQ8BgAEBAQABOwIAAeABDwGAAQEBBwHxAgAB8AEPAYABAQEHAfACAAH4AY8BgAEB
AQcB8AIAAfgBjwGAAQEBBwHwAgAB+AGPAYABAQGHAfACAAHwAY4BgAEBAYcB8AIAAfABjgGAAQEBjwH4
AYABAAHwAYgBgAEBAY8B+AGAAQAB8AEAAYABAQHPAfsBgAEAATABAAGAAQEC4wGAAQABGAHPAYABAQHg
AQMBgAIAAQ8BwAEDAfABBwL/AQABDwL/Af4BPwIAAeABAwEHAfAC/wHgAQ8BgAEBAQMB4AHzAf8BwAEH
AYABAAEBAcAB8AH/AYABAwGAAQACgAHwAX8BgAEDAYABAAGAAQEB8AEfAQABAQGAAQAB4AEDAfABDwEA
AQEBgAEAAfABBwHwAQcCAAGAAQAB+AEPAfABAwIAAYABAAH4AQMB8AEDAQABAQGAAQAB8AEAAfABDwGA
AQEBgAEAAeABAAHwAQ8BgAEDAYABAAHDAYAB8AE/AcABAAGAAQABAwGAAfABfwHgAQABgAEBAQ8BgQHw
Af8B+AEyAYABAQEPAYEB8wL/AfkD/wHjA/8BwAT/BAAC/wIAAv8CAAHzAccCAAGAAwAB4QGDAgABgAMA
AcABAwIAAYADAAHgAQMCAAGAAwAB8AEHAgABgAMAAfgBDwIAAYADAAHwAQ8CAAGAAgABAQHgAQcCAAGA
AgABAQHAAQMCAAGAAgABAQHAAYMCAAGAAgABAQHhAccCAAGAAgABAQHzAe8CAAGAAgABAQL/AgABgAIA
AQEG/ws=
</value>
</data>
<data name="richTextBox1.Text" xml:space="preserve">
<value>QO-100 Multimedia High Speed Modem for Linux and Windows
(c) by DJ0ABR, Kurt Moraw, Germany https://dj0abr.de/
for Amsat-DL: https://amsat-dl.org/
Open Source: https://github.com/dj0abr/SSB_HighSpeed_Modem
3rd Party, Credits and Licensing:
BASS audio library:
www.un4seen.com: BASS is free for non-commercial use
DSP Library liquid-DSP:
https://liquidsdr.org/
MIT License
OPUS Codec:
https://opus-codec.org/
BSD-licensed
FFTW: http://www.fftw.org/
GNU General Public License
FreeDV: https://github.com/drowe67/codec2
GNU Lesser General Public License v2.1
Image from ICON Archive: https://www.iconarchive.com/
Artist: Oxygen Team
Iconset: Oxygen Icons (883 icons)
License: GNU Lesser General Public License
Artist: Sallee Design (Available for custom work)
Iconset: Music Icons (29 icons)
License: CC Attribution 4.0
Testing &amp; Manual:
DD1US: https://www.dd1us.de/
VIP user: DP0GVN: https://www.awi.de/expedition/stationen/neumayer-station-iii.html
</value>
</data>
<metadata name="timer_searchmodem.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>482, 17</value>
</metadata>
+75
View File
@@ -0,0 +1,75 @@
namespace oscardata
{
partial class Form2_showtext
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rtb = new System.Windows.Forms.RichTextBox();
this.bt_OK = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// rtb
//
this.rtb.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.rtb.Location = new System.Drawing.Point(13, 13);
this.rtb.Name = "rtb";
this.rtb.Size = new System.Drawing.Size(310, 315);
this.rtb.TabIndex = 0;
this.rtb.Text = "";
//
// bt_OK
//
this.bt_OK.Location = new System.Drawing.Point(247, 335);
this.bt_OK.Name = "bt_OK";
this.bt_OK.Size = new System.Drawing.Size(75, 23);
this.bt_OK.TabIndex = 1;
this.bt_OK.Text = "OK";
this.bt_OK.UseVisualStyleBackColor = true;
this.bt_OK.Click += new System.EventHandler(this.bt_OK_Click);
//
// Form2_showtext
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(335, 367);
this.Controls.Add(this.bt_OK);
this.Controls.Add(this.rtb);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form2_showtext";
this.ShowIcon = false;
this.Text = "Form2_showtext";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.RichTextBox rtb;
private System.Windows.Forms.Button bt_OK;
}
}
+65
View File
@@ -0,0 +1,65 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace oscardata
{
public partial class Form2_showtext : Form
{
public Form2_showtext(String title,String s)
{
InitializeComponent();
this.Text = title;
PrintText(rtb,s);
}
void PrintText(RichTextBox rtb, String s)
{
AppendTextOnce(rtb, new Font("Courier New", (float)8), Color.Blue, Color.White, s);
}
void AppendTextOnce(RichTextBox rtb, Font selfont, Color color, Color bcolor, string text)
{
try
{
if (text.Contains("\n"))
{
char[] ca = new char[] { '\n', '\r' };
text = text.Trim(ca);
text += "\n";
}
// max. xxx Zeilen, wenn mehr dann lösche älteste
if (rtb.Lines.Length > 200)
{
rtb.SelectionStart = 0;
rtb.SelectionLength = rtb.Text.IndexOf("\n", 0) + 1;
rtb.SelectedText = "";
}
int start = rtb.TextLength;
rtb.AppendText(text);
int end = rtb.TextLength;
// Textbox may transform chars, so (end-start) != text.Length
rtb.Select(start, end - start);
rtb.SelectionColor = color;
rtb.SelectionFont = selfont;
rtb.SelectionBackColor = bcolor;
rtb.Select(end, 0);
rtb.ScrollToCaret();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
private void bt_OK_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+254 -4
View File
@@ -63,9 +63,9 @@ namespace oscardata.Properties {
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap constelBG {
internal static System.Drawing.Bitmap binary {
get {
object obj = ResourceManager.GetObject("constelBG", resourceCulture);
object obj = ResourceManager.GetObject("binary", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -73,9 +73,159 @@ namespace oscardata.Properties {
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap defaultpic {
internal static System.Drawing.Bitmap cancel {
get {
object obj = ResourceManager.GetObject("defaultpic", resourceCulture);
object obj = ResourceManager.GetObject("cancel", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_codecloop {
get {
object obj = ResourceManager.GetObject("cdc_codecloop", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_dig {
get {
object obj = ResourceManager.GetObject("cdc_dig", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_digital {
get {
object obj = ResourceManager.GetObject("cdc_digital", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_dv {
get {
object obj = ResourceManager.GetObject("cdc_dv", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_dvrx {
get {
object obj = ResourceManager.GetObject("cdc_dvrx", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cdc_intloop {
get {
object obj = ResourceManager.GetObject("cdc_intloop", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap fail {
get {
object obj = ResourceManager.GetObject("fail", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap html {
get {
object obj = ResourceManager.GetObject("html", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap image {
get {
object obj = ResourceManager.GetObject("image", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap image1 {
get {
object obj = ResourceManager.GetObject("image1", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap image3 {
get {
object obj = ResourceManager.GetObject("image3", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap meter {
get {
object obj = ResourceManager.GetObject("meter", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap meter_big {
get {
object obj = ResourceManager.GetObject("meter_big", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap ok {
get {
object obj = ResourceManager.GetObject("ok", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap openfolder {
get {
object obj = ResourceManager.GetObject("openfolder", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -89,5 +239,105 @@ namespace oscardata.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Satellite_icon1 {
get {
object obj = ResourceManager.GetObject("Satellite_icon1", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap setup {
get {
object obj = ResourceManager.GetObject("setup", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap setup_big {
get {
object obj = ResourceManager.GetObject("setup_big", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap start {
get {
object obj = ResourceManager.GetObject("start", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap stop {
get {
object obj = ResourceManager.GetObject("stop", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap text {
get {
object obj = ResourceManager.GetObject("text", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap text_big {
get {
object obj = ResourceManager.GetObject("text_big", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap transmit {
get {
object obj = ResourceManager.GetObject("transmit", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap voice {
get {
object obj = ResourceManager.GetObject("voice", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap voice_big {
get {
object obj = ResourceManager.GetObject("voice_big", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}
+80 -5
View File
@@ -118,13 +118,88 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="defaultpic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>defaultpic.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Satellite_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Satellite-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="constelBG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>constelBG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="image" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>image.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="image1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>image1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="binary" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>binary.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cancel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="html" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>html.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="image3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="meter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>meter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="meter_big" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>meter_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="openfolder" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>openfolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Satellite_icon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Satellite-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="setup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>setup.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="setup_big" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>setup_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="start" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>start.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="text" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>text.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="text_big" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>text_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="transmit" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>transmit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="voice" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>voice.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="voice_big" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>voice_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="fail" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>fail.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>ok.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_codecloop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_codecloop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_dig" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_dig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_digital" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_digital.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_dv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_dv.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_dvrx" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_dvrx.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdc_intloop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>cdc_intloop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
</configuration>
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
</configuration>
Binary file not shown.
+58
View File
@@ -22,6 +22,8 @@ namespace oscardata
public static Byte AsciiFile = 3;
public static Byte HTMLFile = 4;
public static Byte BinaryFile = 5;
public static Byte Audio = 6;
// the upper values are for internal use
public static Byte ResamplingRate = 16;
public static Byte AutosendFile = 17;
@@ -30,6 +32,10 @@ namespace oscardata
public static Byte ResetModem = 20;
public static Byte SetPBvolume = 21;
public static Byte SetCAPvolume = 22;
public static Byte SetLSvolume = 23;
public static Byte SetMICvolume = 24;
public static Byte SetVoiceMode = 25;
public static Byte terminate = 26;
// frame sequence, modem needs that for i.e. sending a preamble
public static Byte FirstFrame = 0;
@@ -65,6 +71,9 @@ namespace oscardata
public static String[] AudioPBdevs;
public static String[] AudioCAPdevs;
public static int PBfifousage = 0;
public static int CAPfifousage = 0;
public static int initAudioStatus;
public static int initVoiceStatus;
public static String[] getOwnIPs()
@@ -198,6 +207,38 @@ namespace oscardata
return home + filename;
}
public static void CreateAllDirs()
{
String home = Application.UserAppDataPath;
String deli = "/";
if (statics.ostype == 0)
deli = "\\";
// create home directory
try
{
Directory.CreateDirectory(home);
}
catch { }
// create application path
home += deli + DataStorage;
try
{
Directory.CreateDirectory(home);
}
catch { }
// create image path
home += deli + RXimageStorage;
try
{
Directory.CreateDirectory(home);
}
catch { }
}
// Returns the file's size.
public static long GetFileSize(string file_name)
{
@@ -305,6 +346,23 @@ namespace oscardata
return true;
}
// checks if a process is running
static public bool isProcRunning(String s)
{
bool running = false;
if (ostype == 0)
{
foreach (var process in Process.GetProcessesByName(s))
{
running = true;
break;
}
}
return running;
}
static public void killall(String s)
{
if (ostype == 0)
-21
View File
@@ -107,26 +107,5 @@ namespace oscardata
return destImage;
}
// gets a receive payload, reconstruct the image
// type: 2=start, 3=cont
public void receive_image(Byte[] rxdata, int minfo)
{
BinaryWriter writer = null;
if (minfo == statics.FirstFrame)
{
// image starts, create destination file
writer = new BinaryWriter(File.Open(statics.jpg_tempfilename, FileMode.Create));
writer.Write(rxdata);
}
else
{
// continue with image
writer = new BinaryWriter(File.Open(statics.jpg_tempfilename, FileMode.Append));
writer.Write(rxdata);
}
writer.Close();
}
}
}
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
9e2591805e48c9de90be794d8c80dc9ff27fb5a3
@@ -0,0 +1,11 @@
E:\funk\hsmodem\oscardata\oscardata\bin\Debug\oscardata.exe.config
E:\funk\hsmodem\oscardata\oscardata\bin\Debug\oscardata.exe
E:\funk\hsmodem\oscardata\oscardata\bin\Debug\oscardata.pdb
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.Form1.resources
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.Properties.Resources.resources
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.csproj.GenerateResource.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.csproj.CoreCompileInputs.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.exe
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.pdb
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.csprojAssemblyReference.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Debug\oscardata.Form2_showtext.resources
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
f689faaaeada03b7ced4435f518c6a73110138e7
@@ -0,0 +1,11 @@
E:\funk\hsmodem\oscardata\oscardata\bin\Release\oscardata.exe.config
E:\funk\hsmodem\oscardata\oscardata\bin\Release\oscardata.exe
E:\funk\hsmodem\oscardata\oscardata\bin\Release\oscardata.pdb
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.Form1.resources
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.Properties.Resources.resources
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.csproj.GenerateResource.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.csproj.CoreCompileInputs.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.exe
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.pdb
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.csprojAssemblyReference.cache
E:\funk\hsmodem\oscardata\oscardata\obj\Release\oscardata.Form2_showtext.resources
Binary file not shown.
Binary file not shown.
+44 -6
View File
@@ -64,6 +64,12 @@
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Form2_showtext.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form2_showtext.Designer.cs">
<DependentUpon>Form2_showtext.cs</DependentUpon>
</Compile>
<Compile Include="imagehandler.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -73,6 +79,9 @@
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Form2_showtext.resx">
<DependentUpon>Form2_showtext.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -96,16 +105,45 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\defaultpic.png" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\Satellite-icon.png" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\constelBG.png" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\image.jpg" />
<None Include="Properties\image1.jpg" />
<None Include="Properties\image2.jpg" />
<None Include="Properties\App-voice-support-headset-icon.png" />
<None Include="Properties\Categories-preferences-system-icon.png" />
<None Include="Properties\Downloads-1-icon.png" />
<None Include="Properties\Mimetypes-text-csv-icon.png" />
<None Include="Properties\Photography-icon.png" />
<None Include="Properties\Mimetypes-text-html-icon.png" />
<None Include="Properties\binary.png" />
<None Include="Properties\cancel.png" />
<None Include="Properties\html.png" />
<None Include="Properties\image.png" />
<None Include="Properties\meter.png" />
<None Include="Properties\meter_big.png" />
<None Include="Properties\openfolder.png" />
<None Include="Properties\setup.png" />
<None Include="Properties\setup_big.png" />
<None Include="Properties\start.png" />
<None Include="Properties\stop.png" />
<None Include="Properties\text.png" />
<None Include="Properties\text_big.png" />
<None Include="Properties\transmit.png" />
<None Include="Properties\voice.png" />
<None Include="Properties\voice_big.png" />
<None Include="Properties\fail.png" />
<None Include="Properties\ok.png" />
<None Include="Properties\cdc_codecloop.png" />
<None Include="Properties\cdc_dig.png" />
<None Include="Properties\cdc_digital.png" />
<None Include="Properties\cdc_dv.png" />
<None Include="Properties\cdc_dvrx.png" />
<None Include="Properties\cdc_intloop.png" />
<None Include="Properties\textrx.png" />
<None Include="Properties\texttx.png" />
<Content Include="Satellite-icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+54 -66
View File
@@ -67,6 +67,9 @@ namespace oscardata
int blockidx;
Byte[] firstblock;
bool[] lastblockvalid = new bool[1024];
int lastblockidx;
bool receiving = false;
public String filename = null;
public String StatusText = "";
@@ -97,26 +100,6 @@ namespace oscardata
filesize = 0;
filename = "";
if (!StartFileRX()) return false; // invalid file
// check if file already exists
if (fileExists())
{
// exists already, no need to receive
filename = makeRXfilename();
if (rxtype == statics.Image)
{
try
{
// show existing image
Image img = Image.FromFile(filename);
pbmp = new Bitmap(img);
}
catch { pbmp = null; }
}
receiving = false;
return true;
}
}
if (minfo != statics.FirstFrame)
@@ -281,9 +264,21 @@ namespace oscardata
result[0] = blockidx+1; // +1 because we start with block 0
result[1] = ok;
Array.Copy(blockvalid, lastblockvalid, blockvalid.Length);
lastblockidx = blockidx;
return true;
}
public void oldblockinfo(int[] result)
{
int ok = 0;
for (int i = 0; i <= lastblockidx; i++)
if (lastblockvalid[i]) ok++;
result[0] = lastblockidx + 1; // +1 because we start with block 0
result[1] = ok;
}
void saveBlocks()
{
try
@@ -390,20 +385,6 @@ namespace oscardata
return fn;
}
bool fileExists()
{
String fn = makeRXfilename();
if (!File.Exists(fn)) return false;
// File exists, but is the ID the same ?
Byte[] ba = File.ReadAllBytes(fn);
if (ba == null) return false;
Crc c = new Crc();
int fncrc = c.crc16_messagecalc(ba, ba.Length);
if (ArraySend.FileID != fncrc) return false;
return true;
}
bool SaveFile()
{
Console.WriteLine("save file");
@@ -492,42 +473,49 @@ namespace oscardata
return;
}
// filename has the received data, but maybe too long (multiple of payload length)
// reduce for the real file length
Byte[] fc = File.ReadAllBytes(filename);
Byte[] fdst = new byte[ArraySend.FileSize];
if (fc.Length < ArraySend.FileSize)
try
{
Console.WriteLine("file not complete: got len=" + fc.Length + " expected len=" + ArraySend.FileSize);
return;
}
Array.Copy(fc, 0, fdst, 0, ArraySend.FileSize);
File.WriteAllBytes(statics.zip_RXtempfilename, fdst); // the received file (still zipped) is here
// filename has the received data, but maybe too long (multiple of payload length)
// reduce for the real file length
Byte[] fc = File.ReadAllBytes(filename);
Byte[] fdst = new byte[ArraySend.FileSize];
if (fc.Length < ArraySend.FileSize)
{
Console.WriteLine("file not complete: got len=" + fc.Length + " expected len=" + ArraySend.FileSize);
return;
}
Array.Copy(fc, 0, fdst, 0, ArraySend.FileSize);
File.WriteAllBytes(statics.zip_RXtempfilename, fdst); // the received file (still zipped) is here
// unzip received data and store result in file: unzipped_RXtempfilename
ZipStorer zs = new ZipStorer();
String fl = zs.unzipFile(statics.zip_RXtempfilename);
if (fl != null)
{
// save file
// fl is the filename of the file inside the zip file, so the originally zipped file
// remove path to get just the filename
int idx = fl.LastIndexOf('/');
if (idx == -1) idx = fl.LastIndexOf('\\');
String fdest = fl.Substring(idx + 1);
fdest = statics.getHomePath("", fdest);
// fdest is the file in the oscardata's user home directoty
// remove old file with same name
try { File.Delete(fdest); } catch { }
// move the unzipped file to the final location
File.Move(fl, fdest);
filesize = statics.GetFileSize(fdest);
StatusText = "unzip OK";
// unzip received data and store result in file: unzipped_RXtempfilename
ZipStorer zs = new ZipStorer();
String fl = zs.unzipFile(statics.zip_RXtempfilename);
if (fl != null)
{
// save file
// fl is the filename of the file inside the zip file, so the originally zipped file
// remove path to get just the filename
int idx = fl.LastIndexOf('/');
if (idx == -1) idx = fl.LastIndexOf('\\');
String fdest = fl.Substring(idx + 1);
fdest = statics.getHomePath("", fdest);
// fdest is the file in the oscardata's user home directoty
// remove old file with same name
try { File.Delete(fdest); } catch { }
// move the unzipped file to the final location
File.Move(fl, fdest);
filesize = statics.GetFileSize(fdest);
StatusText = "unzip OK";
}
else
StatusText = "unzip failed";
File.Delete(statics.zip_RXtempfilename);
}
else
catch
{
StatusText = "unzip failed";
File.Delete(statics.zip_RXtempfilename);
}
}
}
}
+17 -4
View File
@@ -33,6 +33,7 @@ namespace oscardata
static UdpQueue uq_iq = new UdpQueue();
public static int searchtimeout = 0;
static String last_audiodevstring = "";
// Constructor
// called when Udp is created by the main program
@@ -96,11 +97,22 @@ namespace oscardata
{
statics.ModemIP = RemoteEndpoint.Address.ToString();
searchtimeout = 0;
// message b contains audio devices
String s = statics.ByteArrayToString(b);
// message b contains audio devices and init status
statics.initAudioStatus = b[0];
statics.initVoiceStatus = b[1];
String s = statics.ByteArrayToString(b,2);
String[] sa1 = s.Split(new char[] { '^' });
statics.AudioPBdevs = sa1[0].Split(new char[] { '~' });
statics.AudioCAPdevs = sa1[1].Split(new char[] { '~' });
// has the device list changed ?
if(s != last_audiodevstring)
{
statics.GotAudioDevices = 1;
last_audiodevstring = s;
}
if(statics.GotAudioDevices == 0)
statics.GotAudioDevices = 1;
}
@@ -109,8 +121,9 @@ namespace oscardata
if (rxtype == statics.udp_fft)
{
statics.PBfifousage = b[0];
Byte[] b1 = new byte[b.Length - 1];
Array.Copy(b, 1, b1, 0, b1.Length);
statics.CAPfifousage = b[1];
Byte[] b1 = new byte[b.Length - 2];
Array.Copy(b, 2, b1, 0, b1.Length);
uq_fft.Add(b1);
}