2800 lines
124 KiB
C#
2800 lines
124 KiB
C#
|
//#define NOALLCALL
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Windows.Forms;
|
|||
|
using Telerik.WinControls.UI;
|
|||
|
using System.IO;
|
|||
|
using System.Collections;
|
|||
|
using System.Threading;
|
|||
|
using SafeMobileLib;
|
|||
|
using Telerik.WinControls;
|
|||
|
using Telerik.WinControls.Enumerations;
|
|||
|
using Telerik.WinControls.UI.Export;
|
|||
|
using System.Runtime.InteropServices;
|
|||
|
|
|||
|
namespace Safedispatch_4_0
|
|||
|
{
|
|||
|
public partial class radioFrom : ShapeNew
|
|||
|
{
|
|||
|
private List<String> ChanelList = null;
|
|||
|
private List<String> ZoneList = null;
|
|||
|
private Int32 ChanSelIdx = 0;
|
|||
|
private ArrayList vehicleListNames;
|
|||
|
private DBgatewaysManager db4gateway;
|
|||
|
List<RadioZones> zonesList;
|
|||
|
List<RadioChannels> channelList;
|
|||
|
private int selectedZoneNr = 0;
|
|||
|
|
|||
|
private Int32 backtoPlayRow = -1;
|
|||
|
private DateTime FirstTime, LastTime, FirstTimePriv, LastTimePriv;
|
|||
|
private TimeSpan DifTime,DifTimePriv;
|
|||
|
private String secName;
|
|||
|
private String talkTime;
|
|||
|
private volatile Boolean Startrecevied = false;
|
|||
|
private String unable = "", otherUser = "", sendlang = "", radiobusy = "", radiooffline="";
|
|||
|
private Boolean chanelFree = true;
|
|||
|
public volatile Boolean threadStarted = false;
|
|||
|
public volatile Boolean progressChecked = false;
|
|||
|
private ConvertDT convDT = new ConvertDT();
|
|||
|
private String msgLimit;
|
|||
|
private String allunits;
|
|||
|
private String remoteMonitor;
|
|||
|
|
|||
|
private void setLanguage()
|
|||
|
{
|
|||
|
secName = MainForm2.returnLNGString("sec");
|
|||
|
talkTime = MainForm2.returnLNGString("talkTime");
|
|||
|
btPTT.Text = MainForm2.returnLNGString("ptt");
|
|||
|
btPPT.Text = MainForm2.returnLNGString("ptt");
|
|||
|
cbPatch.Text = MainForm2.returnLNGString("patch");
|
|||
|
cbFullScreen.Text = MainForm2.returnLNGString("fullscreen");
|
|||
|
lbCallID.Text = MainForm2.returnLNGString("callerID") + ":";
|
|||
|
lbStat.Text = MainForm2.returnLNGString("SMSStatus") + ":";
|
|||
|
|
|||
|
btExport.Text = MainForm2.returnLNGString("expexcel");
|
|||
|
lbAssingKey.Text = MainForm2.returnLNGString("hotkey") + ":";
|
|||
|
tbRadio.Text = MainForm2.returnLNGString("radio");
|
|||
|
tbRecord.Text = MainForm2.returnLNGString("rec");
|
|||
|
ckShowLogin.Text = MainForm2.returnLNGString("showuser");
|
|||
|
RecordingList.Columns[0].HeaderText = "";
|
|||
|
RecordingList.Columns[2].HeaderText = MainForm2.returnLNGString("calltype");
|
|||
|
RecordingList.Columns[3].HeaderText = MainForm2.returnLNGString("Ilabel1");
|
|||
|
RecordingList.Columns[4].HeaderText = MainForm2.returnLNGString("Ilabel2");
|
|||
|
RecordingList.Columns[5].HeaderText = MainForm2.returnLNGString("start");
|
|||
|
RecordingList.Columns[6].HeaderText = MainForm2.returnLNGString("stop");
|
|||
|
RecordingList.Columns[9].HeaderText = MainForm2.returnLNGString("duration");
|
|||
|
lbChan.Text = MainForm2.returnLNGString("chanel");
|
|||
|
lbZone.Text = MainForm2.returnLNGString("zonex");
|
|||
|
gbCallControl.Text = MainForm2.returnLNGString("calltype");
|
|||
|
cbCallType.Text = MainForm2.returnLNGString("calltype");
|
|||
|
rbAllCall.Text = MainForm2.returnLNGString("allcall");
|
|||
|
rbGroupCall.Text = MainForm2.returnLNGString("groupcall");
|
|||
|
rbPrivateCall.Text = MainForm2.returnLNGString("privateCall");
|
|||
|
cbVoicePriority.Text = MainForm2.returnLNGString("voicePriority");
|
|||
|
btChDown.Text = MainForm2.returnLNGString("chdown");
|
|||
|
btChUp.Text = MainForm2.returnLNGString("chup");
|
|||
|
btDkey.Text = MainForm2.returnLNGString("dkey");
|
|||
|
if (MainForm2.radioType == RADIOTYPE.HYT)
|
|||
|
btDkey.Text = MainForm2.returnLNGString("forceStopPTT");
|
|||
|
//"Force stop PTT";
|
|||
|
unable = MainForm2.returnLNGString("unable");
|
|||
|
otherUser = MainForm2.returnLNGString("otherTalk");
|
|||
|
sendlang = MainForm2.returnLNGString("send");
|
|||
|
radiobusy = MainForm2.returnLNGString("radiobusy");
|
|||
|
btRem.Text = MainForm2.returnLNGString("rem");
|
|||
|
btnRefresh.Text = MainForm2.returnLNGString("refresh");
|
|||
|
radiooffline = MainForm2.returnLNGString("radiooffline");
|
|||
|
msgLimit = MainForm2.returnLNGString("endtimegreate");
|
|||
|
allunits = MainForm2.returnLNGString("allunits");
|
|||
|
remoteMonitor = MainForm2.returnLNGString("remotemonitor");
|
|||
|
dtFrom.Culture = MainForm2.culture;
|
|||
|
dtTo.Culture = MainForm2.culture;
|
|||
|
dtFrom.CustomFormat = dtTo.CustomFormat = SafeMobileLib.Utils.getDayCustomFormat(MainForm2.is24hours, MainForm2.DayFirst);
|
|||
|
//if (MainForm2.is24hours)
|
|||
|
//{
|
|||
|
// if (MainForm2.DayFirst)
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "dd/MM/yyyy HH:mm";
|
|||
|
// dtTo.CustomFormat = "dd/MM/yyyy HH:mm";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "MM/dd/yyyy HH:mm";
|
|||
|
// dtTo.CustomFormat = "MM/dd/yyyy HH:mm";
|
|||
|
// }
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// if (MainForm2.DayFirst)
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "dd/MM/yyyy hh:mm tt";
|
|||
|
// dtTo.CustomFormat = "dd/MM/yyyy hh:mm tt";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "MM/dd/yyyy hh:mm tt";
|
|||
|
// dtTo.CustomFormat = "MM/dd/yyyy hh:mm tt";
|
|||
|
// }
|
|||
|
//}
|
|||
|
}
|
|||
|
|
|||
|
public radioFrom(MainForm2 _mainparent, RadioControl _parent, Int32 _gwID, Int32 _radioID, Int32 _ID, String _Name)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
|
|||
|
// set theme for the Message Box
|
|||
|
RadMessageBox.SetThemeName("TelerikMetroBlue");
|
|||
|
|
|||
|
(newtab.ViewElement as RadPageViewStripElement).ShowItemCloseButton = false;
|
|||
|
(newtab.ViewElement as RadPageViewStripElement).StripButtons = StripViewButtons.Scroll;
|
|||
|
lbStatus.AutoSize = false;
|
|||
|
lbStatus.Size = new System.Drawing.Size(215, 22);
|
|||
|
lbChanel.AutoSize = false;
|
|||
|
lbChanel.Size = new System.Drawing.Size(215, 22);
|
|||
|
ckShowLogin.AutoSize = false;
|
|||
|
ckShowLogin.Size = new System.Drawing.Size(91, 43);
|
|||
|
dropCalltype.Enabled = false;
|
|||
|
switch (MainForm2.radioType)
|
|||
|
{
|
|||
|
case RADIOTYPE.CONECTPLUS:
|
|||
|
case RADIOTYPE.TETRA:
|
|||
|
case RADIOTYPE.MOTO:
|
|||
|
this.ThemeName = "Breeze";
|
|||
|
//ThemeResolutionService.ApplyThemeToControlTree(this, "Breeze");
|
|||
|
this.newtab.Size = new Size(newtab.Width, 200);
|
|||
|
cbChan.ForeColor = Color.White;
|
|||
|
cbZone.ForeColor = Color.White;
|
|||
|
btPPT.ForeColor = Color.White;
|
|||
|
break;
|
|||
|
case RADIOTYPE.REPEATER_TRBO:
|
|||
|
this.ThemeName = "Breeze";
|
|||
|
//ThemeResolutionService.ApplyThemeToControlTree(this, "Breeze");
|
|||
|
this.newtab.Size = new Size(newtab.Width, 200);
|
|||
|
cbChan.ForeColor = Color.White;
|
|||
|
cbZone.ForeColor = Color.White;
|
|||
|
btPPT.ForeColor = Color.White;
|
|||
|
this.newtab.Controls.Remove(this.tbRadio);
|
|||
|
this.newtab.SelectedPage = this.tbRecord;
|
|||
|
this.radStatusStrip1.Items.Remove(this.btSound);
|
|||
|
this.radStatusStrip1.Items.Remove(this.ProgVolum);
|
|||
|
this.radStatusStrip1.Items.Remove(this.Sep7);
|
|||
|
this.radStatusStrip1.Items.Remove(this.btPPT);
|
|||
|
this.radStatusStrip1.Items.Remove(this.Sep12);
|
|||
|
this.radStatusStrip1.Items.Remove(this.cbPatch);
|
|||
|
this.radStatusStrip1.Items.Remove(this.Sep13);
|
|||
|
break;
|
|||
|
case RADIOTYPE.HYT:
|
|||
|
try
|
|||
|
{
|
|||
|
this.ThemeName = "office2010";
|
|||
|
this.newtab.Size = new Size(newtab.Width, 200);
|
|||
|
//this.ScreenPanel.Size = new Size(ScreenPanel.Width, 115);//89
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusOR;
|
|||
|
//this.btDkey.Visible = false;
|
|||
|
this.btDkey.Text = "Force PTT Stop";
|
|||
|
this.btPTT.Size = new Size(btPTT.Size.Width, btPTT.Size.Height + 25);
|
|||
|
this.btPTT.ForeColor = Color.Black;
|
|||
|
this.tbRadio.Image = global::Dispatcher.Properties.Resources.radio16;
|
|||
|
|
|||
|
this.lbAssingKey.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbCallID.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbIDValue.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbStat.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbPatch.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckName.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbFullScreen.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbCallType.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckShowLogin.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbVoicePriority.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckDataFilter.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckUnitName.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbFrom.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbTo.ForeColor = MainForm2.HarTextColor;
|
|||
|
// this.gbCallControl.GroupBoxElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbAllCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbGroupCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbPrivateCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.newtab.BackColor = MainForm2.HyteraColor;
|
|||
|
rbAllCall.Location = new Point(rbAllCall.Location.X, rbAllCall.Location.Y - 10);
|
|||
|
rbGroupCall.Location = new Point(rbGroupCall.Location.X, rbGroupCall.Location.Y - 10);
|
|||
|
rbPrivateCall.Location = new Point(rbPrivateCall.Location.X, rbPrivateCall.Location.Y - 10);
|
|||
|
cbVehName.Location = new Point(cbVehName.Location.X, cbVehName.Location.Y - 10);
|
|||
|
tbGroupCallId.Location = new Point(tbGroupCallId.Location.X, tbGroupCallId.Location.Y - 10);
|
|||
|
tbPrivateCallId.Location = new Point(tbPrivateCallId.Location.X, tbPrivateCallId.Location.Y - 10);
|
|||
|
//this.newtab.SelectedPage.BackColor = Color.FromArgb(255, 182, 83);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on change color hytera:" + ex.ToString());
|
|||
|
}
|
|||
|
break;
|
|||
|
case RADIOTYPE.HARRIS:
|
|||
|
try
|
|||
|
{
|
|||
|
this.ThemeName = "Office2010Black";
|
|||
|
this.newtab.Size = new Size(newtab.Width, 200);
|
|||
|
//this.ScreenPanel.Size = new Size(ScreenPanel.Width, 114);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusGR;
|
|||
|
this.btDkey.Visible = false;
|
|||
|
this.btPTT.Size = new Size(btPTT.Size.Width, btPTT.Size.Height + 25);
|
|||
|
this.tbRadio.Image = global::Dispatcher.Properties.Resources.radio16;
|
|||
|
|
|||
|
this.lbAssingKey.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbCallID.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbIDValue.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbStat.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbPatch.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckName.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckShowLogin.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbFullScreen.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.gbCallControl.GroupBoxElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbCallType.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbAllCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbGroupCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbPrivateCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbVoicePriority.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckDataFilter.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckUnitName.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbFrom.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbTo.ForeColor = MainForm2.HarTextColor;
|
|||
|
rbAllCall.Location = new Point(rbAllCall.Location.X, rbAllCall.Location.Y - 10);
|
|||
|
rbGroupCall.Location = new Point(rbGroupCall.Location.X, rbGroupCall.Location.Y - 10);
|
|||
|
rbPrivateCall.Location = new Point(rbPrivateCall.Location.X, rbPrivateCall.Location.Y - 10);
|
|||
|
cbVehName.Location = new Point(cbVehName.Location.X, cbVehName.Location.Y - 10);
|
|||
|
tbGroupCallId.Location = new Point(tbGroupCallId.Location.X, tbGroupCallId.Location.Y - 10);
|
|||
|
tbPrivateCallId.Location = new Point(tbPrivateCallId.Location.X, tbPrivateCallId.Location.Y - 10);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on change color hytera:" + ex.ToString());
|
|||
|
}
|
|||
|
break;
|
|||
|
case RADIOTYPE.ATLAS:
|
|||
|
try
|
|||
|
{
|
|||
|
this.ThemeName = "Office2010Black"; //ATLASCHANGE
|
|||
|
this.newtab.Size = new Size(newtab.Width, 195);
|
|||
|
// this.ScreenPanel.Size = new Size(ScreenPanel.Width, 88);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusGE;
|
|||
|
this.btDkey.Visible = false;
|
|||
|
this.btPTT.Size = new Size(btPTT.Size.Width, btPTT.Size.Height + 25);
|
|||
|
this.tbRadio.Image = global::Dispatcher.Properties.Resources.astroStationOK;
|
|||
|
this.lbAssingKey.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbCallID.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbIDValue.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbStat.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbPatch.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckName.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbFullScreen.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbCallType.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckShowLogin.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.gbCallControl.GroupBoxElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbAllCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbGroupCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.rbPrivateCall.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.cbVoicePriority.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckDataFilter.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.ckUnitName.ButtonElement.TextElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbFrom.ForeColor = MainForm2.HarTextColor;
|
|||
|
this.lbTo.ForeColor = MainForm2.HarTextColor;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on change color hytera:" + ex.ToString());
|
|||
|
}
|
|||
|
break;
|
|||
|
case RADIOTYPE.SIMOCO:
|
|||
|
// we don't need probably
|
|||
|
break;
|
|||
|
}
|
|||
|
this.ProgVolum.IndicatorElement1.DrawFill = true;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor3 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor4 = System.Drawing.Color.White;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor = System.Drawing.Color.LightGray;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor2 = System.Drawing.SystemColors.ControlLight;
|
|||
|
#if NOALLCALL
|
|||
|
rbAllCall.Visible = false;
|
|||
|
rbGroupCall.IsChecked = true;
|
|||
|
#endif
|
|||
|
dtFrom.CustomFormat = dtTo.CustomFormat = SafeMobileLib.Utils.getDayCustomFormat(MainForm2.is24hours, MainForm2.DayFirst);
|
|||
|
//if (MainForm2.is24hours)
|
|||
|
//{
|
|||
|
// if (MainForm2.DayFirst)
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "dd/MM/yyyy HH:mm";
|
|||
|
// dtTo.CustomFormat = "dd/MM/yyyy HH:mm";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "MM/dd/yyyy HH:mm";
|
|||
|
// dtTo.CustomFormat = "MM/dd/yyyy HH:mm";
|
|||
|
// }
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// if (MainForm2.DayFirst)
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "dd/MM/yyyy hh:mm tt";
|
|||
|
// dtTo.CustomFormat = "dd/MM/yyyy hh:mm tt";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// dtFrom.CustomFormat = "MM/dd/yyyy hh:mm tt";
|
|||
|
// dtTo.CustomFormat = "MM/dd/yyyy hh:mm tt";
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
dtFrom.Value = DateTime.Now;
|
|||
|
dtTo.Value = DateTime.Now;
|
|||
|
|
|||
|
//newtab.isse = true;
|
|||
|
try
|
|||
|
{
|
|||
|
setLanguage();
|
|||
|
typeRadio = true;
|
|||
|
ckName.Text = _Name;
|
|||
|
ID = _ID;
|
|||
|
userID = 0;
|
|||
|
radID = _radioID;
|
|||
|
gwID = _gwID;
|
|||
|
gwandradID = gwID.ToString() + '.' + radID.ToString();
|
|||
|
myIP = String.Format("224.10.{0}", gwandradID);
|
|||
|
|
|||
|
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btCollapse.GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent;
|
|||
|
((Telerik.WinControls.Primitives.BorderPrimitive)(this.ImgRad.GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent;
|
|||
|
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btSound.GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent;
|
|||
|
((Telerik.WinControls.Primitives.BorderPrimitive)(this.ImgStat.GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent;
|
|||
|
vehicleListNames = new ArrayList();
|
|||
|
foreach (String obj in MainForm2.vehicleHT.Keys)
|
|||
|
vehicleListNames.Add(new VehandID(((Vehicle)MainForm2.vehicleHT[obj]).busName, ((Vehicle)MainForm2.vehicleHT[obj]).sc_id, ((Vehicle)MainForm2.vehicleHT[obj]).IMEI));
|
|||
|
vehicleListNames.Sort(new VehandIDComparer());
|
|||
|
cbVehName.DataSource = vehicleListNames;
|
|||
|
cbVehName.DisplayMember = "Name";
|
|||
|
if (cbVehName.Items.Count > 1)
|
|||
|
cbVehName.SelectedIndex = 0;
|
|||
|
|
|||
|
cbUnitName.DataSource = vehicleListNames;
|
|||
|
cbUnitName.DisplayMember = "Name";
|
|||
|
if (cbUnitName.Items.Count > 1)
|
|||
|
cbUnitName.SelectedIndex = 0;
|
|||
|
|
|||
|
parent = _parent;
|
|||
|
mainparent = _mainparent;
|
|||
|
cbChan.Enabled = false;
|
|||
|
cbZone.Enabled = false;
|
|||
|
btPPT.Enabled = false;
|
|||
|
btPTT.Enabled = false;
|
|||
|
isEnabled = false;
|
|||
|
isON = false;
|
|||
|
if (MainForm2.LimitedUser)
|
|||
|
{
|
|||
|
tbRemote.Visible = false;
|
|||
|
btRem.Visible = false;
|
|||
|
}
|
|||
|
db4gateway = new DBgatewaysManager(MainForm2.ServerDBip, MainForm2.Schema, MainForm2.UserDB, MainForm2.PassDB, MainForm2.PortDB);
|
|||
|
LoadZone();
|
|||
|
LoadChanel();
|
|||
|
if (channelList != null)
|
|||
|
lbChanel.Text = ChanelList[0].ToString();
|
|||
|
if (MainForm2.LimitedUser)
|
|||
|
newtab.Pages.Remove(tbRecord);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Radio constuctor phase one:" + ex.ToString());
|
|||
|
}
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
ArrayList tmpSound = smdbObj.GetSoundCards(radID + 255);
|
|||
|
if (tmpSound.Count > 0)
|
|||
|
{
|
|||
|
if(tmpSound.Count > 2)
|
|||
|
txAssingKey.Text = tmpSound[2].ToString();
|
|||
|
else
|
|||
|
txAssingKey.Text = "";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
txAssingKey.Text = "";
|
|||
|
}
|
|||
|
txAssingKey.MaxLength = 1;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Unable to load sound settings."+ex.ToString());
|
|||
|
}
|
|||
|
try
|
|||
|
{
|
|||
|
//iniVoiceComponents(listPlayBDevices, listRecBDevices);
|
|||
|
StartRadioBus(myIP);
|
|||
|
ChangeState();
|
|||
|
checkMessage.RunWorkerAsync();
|
|||
|
List<User> tmp = new List<User>();
|
|||
|
foreach (User obj in MainForm2.UsersList)
|
|||
|
{
|
|||
|
if (obj.Id == MainForm2.userIDX)
|
|||
|
{
|
|||
|
tmp.Add(new User(obj.UType, obj.FirstName, obj.Lastname, obj.UserName, obj.Password, obj.Id));
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
foreach (User obj in MainForm2.UsersList)
|
|||
|
{
|
|||
|
if (obj.UType == USERTYPE.LiteDispatcher)
|
|||
|
tmp.Add(new User(obj.UType, obj.FirstName, obj.Lastname, obj.UserName, obj.Password, obj.Id));
|
|||
|
}
|
|||
|
cbUsers.DataSource = tmp;
|
|||
|
cbUsers.DisplayMember = "UserName";
|
|||
|
cbUsers.SelectedIndex = 0;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Radio constuctor phase 3:" + ex.ToString());
|
|||
|
}
|
|||
|
afterload = true;
|
|||
|
}
|
|||
|
private Boolean afterload = false;
|
|||
|
public void RefreshChanel()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
String Totrans = "#104#" + gwandradID + "#0.0#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 0));
|
|||
|
Thread.Sleep(1);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("FirstChanel:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void FirstChanel()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
String Totrans = "#94#" + gwandradID + "#0.0#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 3000, 0));
|
|||
|
Thread.Sleep(1);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("FirstChanel:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void LoadChanel()
|
|||
|
{
|
|||
|
if (selectedZoneNr > 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
cbChan.Items.Clear();
|
|||
|
channelList = db4gateway.gelAllradioChannels(zonesList[selectedZoneNr - 1].Id);
|
|||
|
ChanelList = new List<string>();
|
|||
|
foreach (RadioChannels rc in channelList)
|
|||
|
ChanelList.Add(rc.Name);
|
|||
|
int cnt = -1;
|
|||
|
foreach (String obj in ChanelList)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
RadMenuItem tmp = new RadMenuItem(obj);
|
|||
|
tmp.Name = "chmenu" + cnt.ToString();
|
|||
|
cbChan.Items.Add(tmp);
|
|||
|
tmp.Click += new System.EventHandler(cbChanel_Click);
|
|||
|
}
|
|||
|
((RadMenuItem)cbChan.Items[0]).IsChecked = true;
|
|||
|
cbChan.Text = ((RadMenuItem)cbChan.Items[0]).Text;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("radioForm->LoadChanel" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void cbChanel_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Int32 cnt = -1;
|
|||
|
foreach (RadMenuItem obj in cbChan.Items)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
if (obj.Name == ((RadMenuItem)sender).Name) { ChanSelIdx = cnt; ChangeChanel(0); break; }
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("cbChanel_Click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ChangeChanel(Int32 NewZone)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
String Totrans = "";
|
|||
|
if (NewZone != 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
List<RadioChannels> TmpchList = db4gateway.gelAllradioChannels(zonesList[NewZone - 1].Id);
|
|||
|
Totrans = "#104#" + gwandradID + "#" + zonesList[NewZone - 1].Nr + "." + TmpchList[0].Nr + "#";
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on change chanel" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
Totrans = "#104#" + gwandradID + "#" + zonesList[selectedZoneNr - 1].Nr + "." + channelList[ChanSelIdx].Nr + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 0));
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("ChangeChanel:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void DisplayChChanel(Int64 responseCH)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Int64 ZoneNr = responseCH / 100;
|
|||
|
Int64 ChNr = responseCH % 100;
|
|||
|
String ZonetoStr = "zone " + ZoneNr;
|
|||
|
|
|||
|
Int32 cnt = 0;
|
|||
|
foreach (RadMenuItem obj in cbZone.Items)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
if (obj.Text == ZonetoStr)
|
|||
|
{
|
|||
|
obj.IsChecked = true;
|
|||
|
cbZone.Text = ZonetoStr;
|
|||
|
selectedZoneNr = cnt;
|
|||
|
}
|
|||
|
else obj.IsChecked = false;
|
|||
|
}
|
|||
|
if (selectedZoneNr > 0)
|
|||
|
{
|
|||
|
cbChan.Items.Clear();
|
|||
|
channelList = db4gateway.gelAllradioChannels(zonesList[selectedZoneNr - 1].Id);
|
|||
|
cnt = -1;
|
|||
|
foreach (RadioChannels rc in channelList)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
RadMenuItem tmp = new RadMenuItem(rc.Name);
|
|||
|
tmp.Name = "chmenu" + cnt.ToString();
|
|||
|
if (rc.Nr == ChNr)
|
|||
|
{
|
|||
|
cbChan.Text = rc.Name;
|
|||
|
tmp.IsChecked = true;
|
|||
|
ChanSelIdx = cnt;
|
|||
|
}
|
|||
|
else tmp.IsChecked = false;
|
|||
|
cbChan.Items.Add(tmp);
|
|||
|
tmp.Click += new System.EventHandler(cbChanel_Click);
|
|||
|
}
|
|||
|
lbChanel.Text = cbChan.Text;
|
|||
|
}
|
|||
|
lbStatus.Text = "";
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("DisplayChChanel:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void LoadZone()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
zonesList = db4gateway.gelAllradioZones(radID);
|
|||
|
ZoneList = new List<string>();
|
|||
|
/*foreach (RadioZones rz in zonesList)
|
|||
|
ZoneList.Add("zone " + rz.Nr);*/
|
|||
|
|
|||
|
foreach (RadioZones rz in zonesList)
|
|||
|
ZoneList.Add(rz.Name);
|
|||
|
|
|||
|
int cnt = -1;
|
|||
|
foreach (String obj in ZoneList)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
RadMenuItem tmp = new RadMenuItem(obj);
|
|||
|
tmp.Name = "znmenu" + cnt.ToString();
|
|||
|
cbZone.Items.Add(tmp);
|
|||
|
tmp.Click += new System.EventHandler(cbZone_Click);
|
|||
|
}
|
|||
|
if (cbZone.Items.Count > 0)
|
|||
|
{
|
|||
|
((RadMenuItem)cbZone.Items[0]).IsChecked = true;
|
|||
|
selectedZoneNr = 1;
|
|||
|
cbZone.Text = ((RadMenuItem)cbZone.Items[0]).Text;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("LoadZone:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void cbZone_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
int cnt = 0;
|
|||
|
foreach (RadMenuItem obj in cbZone.Items)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
if (obj.Name == ((RadMenuItem)sender).Name) { ChangeChanel(cnt); break; }
|
|||
|
}
|
|||
|
SM.Debug("Sending zone change nr=" + selectedZoneNr);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("cbZone_Click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void radCheckBoxElement1_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!ForceUnCheck)
|
|||
|
{
|
|||
|
Selected = ckName.IsChecked;
|
|||
|
foreach (ShapeNew obj in parent.RadioForms)
|
|||
|
if (obj.ID != ID)
|
|||
|
if (obj.Selected)
|
|||
|
{
|
|||
|
obj.ForceUnCheck = true;
|
|||
|
obj.Selected = false;
|
|||
|
if (obj.typeRadio) ((radioFrom)obj).ckName.IsChecked = false;
|
|||
|
else ((dispFrom)obj).ckName.IsChecked = false;
|
|||
|
}
|
|||
|
}
|
|||
|
else ForceUnCheck = false;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("radCheckBoxElement1:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btCollapse_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
ChangeState();
|
|||
|
}
|
|||
|
|
|||
|
public Boolean ChangeState()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (Collapse)
|
|||
|
{
|
|||
|
//Console.WriteLine(parent.SizeofScreen-parent.RadioForms.Count*27-20);
|
|||
|
//Int32 FullHeight = parent.SizeofScreen - parent.RadioForms.Count * 27 - 20;
|
|||
|
//Int32 FullHeight = parent.radScrollablePanel1.Size.Height - parent.RadioForms.Count * 24;
|
|||
|
Int32 FullHeight = 255;
|
|||
|
if (cbFullScreen.Checked)
|
|||
|
FullHeight = parent.radScrollablePanel1.Size.Height - parent.RadioForms.Count * 24;
|
|||
|
this.Size = new Size(this.Size.Width, FullHeight);
|
|||
|
this.newtab.Size = new Size(this.newtab.Width, FullHeight-30);
|
|||
|
switch (MainForm2.radioType)
|
|||
|
{
|
|||
|
case RADIOTYPE.CONECTPLUS:
|
|||
|
case RADIOTYPE.TETRA:
|
|||
|
case RADIOTYPE.REPEATER_TRBO:
|
|||
|
case RADIOTYPE.MOTO:
|
|||
|
//this.Size = new Size(this.Size.Width, 225);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.minus;
|
|||
|
break;
|
|||
|
case RADIOTYPE.HYT:
|
|||
|
//this.Size = new Size(this.Size.Width, 225);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.minusOR;
|
|||
|
break;
|
|||
|
case RADIOTYPE.HARRIS:
|
|||
|
//this.Size = new Size(this.Size.Width, 225);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.minusGR;
|
|||
|
break;
|
|||
|
case RADIOTYPE.ATLAS: //ATLASCHANGE
|
|||
|
//this.Size = new Size(this.Size.Width, 225);
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.minusGE;
|
|||
|
break;
|
|||
|
case RADIOTYPE.SIMOCO:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.minus;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
this.Size = new Size(this.Size.Width, 27);
|
|||
|
switch (MainForm2.radioType)
|
|||
|
{
|
|||
|
case RADIOTYPE.CONECTPLUS:
|
|||
|
case RADIOTYPE.TETRA:
|
|||
|
case RADIOTYPE.REPEATER_TRBO:
|
|||
|
case RADIOTYPE.MOTO:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plus;
|
|||
|
break;
|
|||
|
case RADIOTYPE.HYT:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusOR;
|
|||
|
break;
|
|||
|
case RADIOTYPE.HARRIS:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusGR;
|
|||
|
break;
|
|||
|
case RADIOTYPE.ATLAS:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plusGE; //ATLASCHANGE
|
|||
|
break;
|
|||
|
case RADIOTYPE.SIMOCO:
|
|||
|
btCollapse.Image = global::Dispatcher.Properties.Resources.plus;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
Collapse = !Collapse;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("ChangeState:"+ex.ToString());
|
|||
|
}
|
|||
|
return Collapse;
|
|||
|
}
|
|||
|
|
|||
|
private void btSound_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (VoiceON)
|
|||
|
{
|
|||
|
btSound.Image = global::Dispatcher.Properties.Resources.speakerofftest;
|
|||
|
VoiceON = false;
|
|||
|
MainForm2.ProrityIP = "";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
btSound.Image = global::Dispatcher.Properties.Resources.speakeron;
|
|||
|
VoiceON = true;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btSound_Click:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public ArrayList recordArrayList = new ArrayList();
|
|||
|
volatile List<DataforRecording> ListforGrid = new List<DataforRecording>();
|
|||
|
public void populateRecList(ArrayList recArray)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Console.WriteLine("Populate RecList");
|
|||
|
Boolean havedate = false;
|
|||
|
RecordingList.Columns[3].SortOrder = RadSortOrder.None;
|
|||
|
foreach (Recording rs in recArray)
|
|||
|
{
|
|||
|
Console.WriteLine("Comapare rs.gwID=" + rs.gwID + " gwID" + gwID + " rez:" + (rs.gwID == gwID) + " rs.radioGWID=" + rs.radioGWID + " radID=" + radID + " rez:" + (rs.radioGWID == radID) + " SDtype=" + rs.typeSD);
|
|||
|
if ((rs.gwID == gwID) && (rs.radioGWID == radID) && (rs.typeSD == 0)) { havedate = true; break; }
|
|||
|
if (ckShowLogin.Checked)
|
|||
|
{
|
|||
|
if ((rs.gwID == gwID) && (rs.radioGWID == radID) && (rs.typeSD == 1) && (rs.subID == ((User)((RadListDataItem)cbUsers.SelectedItem).Value).Id)) { havedate = true; break; }
|
|||
|
}
|
|||
|
}
|
|||
|
int n = -1;
|
|||
|
if (havedate)
|
|||
|
{
|
|||
|
Console.WriteLine("Face populare");
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (RecordingList.InvokeRequired)
|
|||
|
{
|
|||
|
RecordingList.Invoke(new MethodInvoker(() =>
|
|||
|
{
|
|||
|
RecordingList.Rows.Clear();
|
|||
|
}));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
RecordingList.Rows.Clear();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on populate grid" + ex.ToString());
|
|||
|
}
|
|||
|
recordArrayList.Clear();
|
|||
|
foreach (Recording rs in recArray)
|
|||
|
{
|
|||
|
if (((rs.gwID == gwID) && (rs.radioGWID == radID)) && ((rs.typeSD == 0) || ((rs.typeSD == 1) && (rs.subID == ((User)((RadListDataItem)cbUsers.SelectedItem).Value).Id))))
|
|||
|
{
|
|||
|
//recordArrayList.Add(rs);
|
|||
|
//public Recording(Int64 _id, long _startTime, long _endTime, DateTime _startDateTime, DateTime _endDateTime, string _hddLocation, int _subID, Int32 _gwID, Int32 _radioGWID, int _typeSD, int _calltype, Int32 _Group_ID)
|
|||
|
recordArrayList.Add(new Recording(rs.id,rs.startTime,rs.endTime,rs.startDateTime,rs.endDateTime,rs.hddLocation,rs.subID,rs.gwID,rs.radioGWID,rs.typeSD,rs.calltype,rs.Group_ID));
|
|||
|
|
|||
|
Image tmpIMG = null;
|
|||
|
switch (rs.calltype)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_made_24x20;
|
|||
|
break;
|
|||
|
case 1:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_made_group_24x20;
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_made_all_24x20;
|
|||
|
break;
|
|||
|
case 4:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_received_24X20;
|
|||
|
break;
|
|||
|
case 5:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_received_group_24x20;
|
|||
|
break;
|
|||
|
case 6:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.call_received_all_24x20;
|
|||
|
break;
|
|||
|
case 7:
|
|||
|
tmpIMG = global::Dispatcher.Properties.Resources.remmonitor24x20;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
String ValCell3 = "", ValCell4 = "";
|
|||
|
|
|||
|
if (rs.typeSD == 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (rs.calltype > 3)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[rs.subID.ToString()]!=null) ValCell3 = (String)MainForm2.VehIMEIHash[rs.subID.ToString()];
|
|||
|
else ValCell3 = "Radio_ID " + rs.subID;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
ValCell3 = "Radio_ID " + rs.subID;
|
|||
|
}
|
|||
|
if (rs.calltype == 4)
|
|||
|
{
|
|||
|
ValCell4 = ((User)((RadListDataItem)cbUsers.SelectedItem).Value).UserName;
|
|||
|
if (rs.Group_ID != 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[rs.Group_ID.ToString()] != null) ValCell4 = (String)MainForm2.VehIMEIHash[rs.Group_ID.ToString()];
|
|||
|
else ValCell4 = "Radio_ID " + rs.Group_ID;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
ValCell4 = "Radio_ID " + rs.Group_ID;
|
|||
|
}
|
|||
|
}
|
|||
|
Console.WriteLine();
|
|||
|
}
|
|||
|
else if (rs.calltype == 5)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ValCell4 = ((GroupClass)MainForm2.GroupHash[rs.Group_ID]).name;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
ValCell4 = "Group_ID " + rs.Group_ID;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (rs.calltype == 6) ValCell4 = allunits;
|
|||
|
else
|
|||
|
{
|
|||
|
ValCell4 = ValCell3;
|
|||
|
ValCell3 = remoteMonitor;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
ValCell4 = rs.subID.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (rs.calltype < 3)
|
|||
|
{
|
|||
|
ValCell3 = (String)MainForm2.userIDHash[rs.subID];
|
|||
|
if (rs.calltype == 0)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ValCell4 = (String)MainForm2.VehIMEIHash[rs.radioGWID.ToString()];
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
ValCell4 = "Radio_ID " + rs.radioGWID;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (rs.calltype == 1)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ValCell4 = ((GroupClass)MainForm2.GroupHash[rs.Group_ID]).name;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
ValCell4 = "Group_ID " + rs.Group_ID;
|
|||
|
}
|
|||
|
}
|
|||
|
else ValCell4 = allunits;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
ValCell4 = rs.subID.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
TimeSpan duration = rs.endDateTime - rs.startDateTime;
|
|||
|
//ListforGrid.Add(new DataforRecording(global::Dispatcher.Properties.Resources.play, rs.id.ToString(), tmpIMG, ValCell3, ValCell4, rs.startDateTime.ToString(), rs.endDateTime.ToString(), rs.startDateTime.ToUniversalTime().Ticks.ToString(), rs.endDateTime.ToUniversalTime().Ticks.ToString(), (Int32)duration.TotalSeconds, rs.calltype));
|
|||
|
ListforGrid.Add(new DataforRecording(global::Dispatcher.Properties.Resources.play, rs.id.ToString(), tmpIMG, ValCell3, ValCell4, rs.startDateTime.ToString(), rs.endDateTime.ToString(), rs.startTime.ToString(), rs.endTime.ToString(), (Int32)duration.TotalSeconds, rs.calltype));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (RecordingList.InvokeRequired)
|
|||
|
{
|
|||
|
RecordingList.Invoke(new MethodInvoker(() => {
|
|||
|
RecordingList.DataSource = null;
|
|||
|
RecordingList.DataSource = ListforGrid;
|
|||
|
RecordingList.Refresh();
|
|||
|
RecordingList.TableElement.ScrollToRow(0);
|
|||
|
}));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
RecordingList.DataSource = null;
|
|||
|
RecordingList.DataSource = ListforGrid;
|
|||
|
RecordingList.Refresh();
|
|||
|
RecordingList.TableElement.ScrollToRow(0);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on populate grid" + ex.ToString());
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("populateRecList:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void RecordingList_CellClick(object sender, GridViewCellEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if ((e.ColumnIndex == 0) && (e.RowIndex >= 0) && (!MainForm2.PlayingFile))
|
|||
|
{
|
|||
|
backtoPlayRow = e.RowIndex;
|
|||
|
SM.Debug("Duration:"+(Int32)((Convert.ToInt64(RecordingList.SelectedRows[0].Cells[9].Value))));
|
|||
|
parent.PlayFile(Convert.ToInt64(RecordingList.SelectedRows[0].Cells[1].Value),(Int32)((Convert.ToInt64(RecordingList.SelectedRows[0].Cells[9].Value)))); //(Int32)((Convert.ToInt64(RecordingList.SelectedRows[0].Cells[8].Value) - Convert.ToInt64(RecordingList.SelectedRows[0].Cells[7].Value))/1000));
|
|||
|
//System.Threading.Timer t1 = new System.Threading.Timer(SendStop, seqID, timeout, System.Threading.Timeout.Infinite);
|
|||
|
RecordingList.Rows[e.RowIndex].Cells[0].Value = global::Dispatcher.Properties.Resources.stop;
|
|||
|
RecordingList.Refresh();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on click" + ex.ToString());
|
|||
|
if ((MainForm2.radioType == RADIOTYPE.HARRIS)||(MainForm2.radioType == RADIOTYPE.ATLAS)) ((RadLabel)RadMessageBox.Instance.Controls[1]).LabelElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
RadMessageBox.Show(MainForm2.returnLNGString("unplayFile"), MainForm2.returnLNGString("war"), MessageBoxButtons.OK, RadMessageIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void BackToPlay()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (backtoPlayRow != -1)
|
|||
|
{
|
|||
|
RecordingList.Rows[backtoPlayRow].Cells[0].Value = global::Dispatcher.Properties.Resources.play;
|
|||
|
RecordingList.Refresh();
|
|||
|
}
|
|||
|
backtoPlayRow = -1;
|
|||
|
ProgVolum.Value1 = ProgVolum.Maximum - 0 + ProgVolum.Minimum;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Unable to get back volume" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void BackVolum(Int32 volum)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if ((volum > 50) && (volum < 10000)) ProgVolum.Value1 = ProgVolum.Maximum - (Int32)((volum - 50) / 100) + ProgVolum.Minimum;
|
|||
|
else if (volum <= 50) ProgVolum.Value1 = ProgVolum.Maximum - 0 + ProgVolum.Minimum;
|
|||
|
Console.WriteLine("Volume="+volum);
|
|||
|
foreach (String objkey in MainForm2.PopupOpen.Keys)
|
|||
|
{
|
|||
|
if (((Popupwindow)MainForm2.PopupOpen[objkey]).gwandradID == gwandradID)
|
|||
|
((Popupwindow)MainForm2.PopupOpen[objkey]).BackVolum(volum);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Erorr on backvolum" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btChDown_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
ChanSelIdx++;
|
|||
|
if (ChanSelIdx >= ChanelList.Count) ChanSelIdx = 0;
|
|||
|
ChangeChanel(0);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btchDown_click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btChUp_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
ChanSelIdx--;
|
|||
|
if (ChanSelIdx < 0) ChanSelIdx = ChanelList.Count - 1;
|
|||
|
ChangeChanel(0);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btChUp_click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private volatile Boolean PTTinprogres = false;
|
|||
|
public volatile Int32 Callmade = 101;
|
|||
|
private volatile Boolean MAKESTOPBOOL = true;
|
|||
|
private volatile Boolean MAKESTOPBOOLPTTALL = true;
|
|||
|
|
|||
|
private void SendGroupCall()
|
|||
|
{
|
|||
|
Int64 id = 1;
|
|||
|
try
|
|||
|
{
|
|||
|
id = Convert.ToInt64(tbGroupCallId.Text);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
id = 0;
|
|||
|
}
|
|||
|
if ((id >= 1) && (id <= 16776415))
|
|||
|
{
|
|||
|
INPTT = true;
|
|||
|
LimitPTT.Enabled = true;
|
|||
|
LimitPTT.Start();
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
//END
|
|||
|
Callmade = 103;
|
|||
|
String Totrans = "#103#" + gwandradID + "." + id.ToString() + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 103));
|
|||
|
DisableCMDPTT();
|
|||
|
MAKESTOPBOOL = false;
|
|||
|
}//lbStatus.Text = rbGroupCall.Text + " " + id.ToString();
|
|||
|
else lbStatus.Text = MainForm2.returnLNGString("errorIDLim");
|
|||
|
}
|
|||
|
|
|||
|
private void SendPrivateCall()
|
|||
|
{
|
|||
|
Int64 id = 1;
|
|||
|
try
|
|||
|
{
|
|||
|
id = Convert.ToInt64(tbPrivateCallId.Text);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
id = 0;
|
|||
|
}
|
|||
|
if ((id >= 1) && (id <= 16776415))
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[id.ToString()] != null)
|
|||
|
{
|
|||
|
INPTT = true;
|
|||
|
LimitPTT.Enabled = true;
|
|||
|
LimitPTT.Start();
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
//END
|
|||
|
Callmade = 102;
|
|||
|
Send_Private_PTT(id.ToString());
|
|||
|
MAKESTOPBOOL = false;
|
|||
|
}
|
|||
|
else lbStatus.Text = id.ToString() + " " + MainForm2.returnLNGString("IsNotYourUnit");
|
|||
|
}
|
|||
|
else lbStatus.Text = MainForm2.returnLNGString("errorIDLim");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private void btPTT_MouseDown(object sender, MouseEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Int64 id = 1;
|
|||
|
String Totrans = "";
|
|||
|
SM.Debug("VALUE statuson PTTclick: isON:" + isON + " PTTinprogres " + PTTinprogres + " PTTclicked: " + PTTclicked + " INPTT: " + INPTT);
|
|||
|
if ((isON) && (!PTTinprogres) && (!PTTclicked) && (!INPTT))
|
|||
|
{
|
|||
|
#if NOALLCALL
|
|||
|
|
|||
|
#else
|
|||
|
if (rbAllCall.IsChecked)
|
|||
|
{
|
|||
|
//common section safe BEGIN
|
|||
|
if (sender == btPPT) btPTT.Enabled = false;
|
|||
|
else btPPT.Enabled = false;
|
|||
|
INPTT = true;
|
|||
|
LimitPTT.Enabled = true;
|
|||
|
LimitPTT.Start();
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
//END
|
|||
|
Callmade = 101;
|
|||
|
Send_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
MAKESTOPBOOL = false;
|
|||
|
}
|
|||
|
else
|
|||
|
#endif
|
|||
|
if (rbGroupCall.IsChecked)
|
|||
|
{
|
|||
|
if (sender == btPPT) btPTT.Enabled = false;
|
|||
|
else btPPT.Enabled = false;
|
|||
|
SendGroupCall();
|
|||
|
/* try
|
|||
|
{
|
|||
|
id = Convert.ToInt64(tbGroupCallId.Text);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
id = 0;
|
|||
|
}
|
|||
|
if ((id >= 1) && (id <= 16776415))
|
|||
|
{
|
|||
|
//common section safe BEGIN
|
|||
|
if (sender == btPPT) btPTT.Enabled = false;
|
|||
|
else btPPT.Enabled = false;
|
|||
|
INPTT = true;
|
|||
|
LimitPTT.Enabled = true;
|
|||
|
LimitPTT.Start();
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
//END
|
|||
|
Callmade = 103;
|
|||
|
Totrans = "#103#" + gwandradID + "." + id.ToString() + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 103));
|
|||
|
DisableCMDPTT();
|
|||
|
MAKESTOPBOOL = false;
|
|||
|
}//lbStatus.Text = rbGroupCall.Text + " " + id.ToString();
|
|||
|
else lbStatus.Text = MainForm2.returnLNGString("errorIDLim");*/
|
|||
|
}
|
|||
|
//1 - 16776415
|
|||
|
else if (rbPrivateCall.IsChecked)
|
|||
|
{
|
|||
|
if (sender == btPPT) btPTT.Enabled = false;
|
|||
|
else btPPT.Enabled = false;
|
|||
|
SendPrivateCall();
|
|||
|
/* try
|
|||
|
{
|
|||
|
id = Convert.ToInt64(tbPrivateCallId.Text);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
id = 0;
|
|||
|
}
|
|||
|
if ((id >= 1) && (id <= 16776415))
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[id.ToString()] != null)
|
|||
|
{
|
|||
|
//common section safe BEGIN
|
|||
|
if (sender == btPPT) btPTT.Enabled = false;
|
|||
|
else btPPT.Enabled = false;
|
|||
|
INPTT = true;
|
|||
|
LimitPTT.Enabled = true;
|
|||
|
LimitPTT.Start();
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
//END
|
|||
|
Callmade = 102;
|
|||
|
Send_Private_PTT(id.ToString());
|
|||
|
MAKESTOPBOOL = false;
|
|||
|
}
|
|||
|
else lbStatus.Text = id.ToString() + " " + MainForm2.returnLNGString("IsNotYourUnit");
|
|||
|
}
|
|||
|
else lbStatus.Text = MainForm2.returnLNGString("errorIDLim");*/
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Ex btPTT_MouseDown:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void DisableCMDPTT()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ResponsePTT = false;
|
|||
|
OUTBEFORE = false;
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.yellow_status;
|
|||
|
DisableChALL();
|
|||
|
btRem.Enabled = false;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("DisableCMDPTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void EnableCMDPTT()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
EnableChALL();
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.green_status;
|
|||
|
btPPT.Enabled = true;
|
|||
|
btPTT.Enabled = true;
|
|||
|
ProgVolum.Value1 = ProgVolum.Maximum - 0 + ProgVolum.Minimum;
|
|||
|
btRem.Enabled = true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("EnableCMDPTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public volatile Boolean OUTBEFORE=false;
|
|||
|
private void btPTT_MouseUp(object sender, MouseEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
SM.Debug("Response on MouseUP:"+ResponsePTT);
|
|||
|
if (ResponsePTT) callStopProcedure(false);
|
|||
|
else OUTBEFORE = true;
|
|||
|
if (PTTinprogres)
|
|||
|
{
|
|||
|
btPPT.Enabled = false;
|
|||
|
btPTT.Enabled = false;
|
|||
|
}//new code for hytera i think is also true for motorola
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
Thread.Sleep(1000);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btPTT_MouseUp:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void callStopProcedure(Boolean forcePTTClicked)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
SM.Debug("callStopProcedure with value CallMade:"+Callmade);
|
|||
|
if (forcePTTClicked) PTTclicked = true;
|
|||
|
String Totrans = "";
|
|||
|
if (Callmade == 101) Stop_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
else if (Callmade == 103)
|
|||
|
{
|
|||
|
if (PTTclicked)
|
|||
|
{
|
|||
|
Totrans = "#113#" + gwandradID + "." + tbGroupCallId.Text + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 113));
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (Callmade == 102) Stop_Private_PTT(tbPrivateCallId.Text);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("callStopProcedure:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void checkMessage_DoWork(object sender, DoWorkEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
BackgroundWorker worker = sender as BackgroundWorker;
|
|||
|
e.Result = Computation(worker, e);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Erorr start checkMessage:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void TurnON()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ImgRad.Image = global::Dispatcher.Properties.Resources.radioGREEN;
|
|||
|
cbChan.Enabled = true;
|
|||
|
cbZone.Enabled = true;
|
|||
|
isEnabled = true;
|
|||
|
PTT_enable();
|
|||
|
btRem.Enabled = true;
|
|||
|
btChDown.Enabled = true;
|
|||
|
btChUp.Enabled = true;
|
|||
|
//ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screen_light2_on;
|
|||
|
ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screenON;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug(" TurnON:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void TurnOFF()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ImgRad.Image = global::Dispatcher.Properties.Resources.radioblack1;
|
|||
|
cbChan.Enabled = false;
|
|||
|
cbZone.Enabled = false;
|
|||
|
isEnabled = false;
|
|||
|
PTT_disable();
|
|||
|
if (MainForm2.radioType != RADIOTYPE.HYT)
|
|||
|
btDkey.Enabled = false;
|
|||
|
|
|||
|
btRem.Enabled = false;
|
|||
|
btChDown.Enabled = false;
|
|||
|
btChUp.Enabled = false;
|
|||
|
//ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screen_light2;
|
|||
|
ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screenOFF;
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.red_status;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug(" TurnOFF:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void EnableALL()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
cbChan.Enabled = true;
|
|||
|
cbZone.Enabled = true;
|
|||
|
isEnabled = true;
|
|||
|
PTT_enable();
|
|||
|
btRem.Enabled = true;
|
|||
|
btChDown.Enabled = true;
|
|||
|
btChUp.Enabled = true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug(" EnableALL:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void DisableALL()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
cbChan.Enabled = false;
|
|||
|
cbZone.Enabled = false;
|
|||
|
isEnabled = false;
|
|||
|
PTT_disable();
|
|||
|
if (MainForm2.radioType != RADIOTYPE.HYT)
|
|||
|
btDkey.Enabled = false;
|
|||
|
|
|||
|
btRem.Enabled = false;
|
|||
|
btChDown.Enabled = false;
|
|||
|
btChUp.Enabled = false;
|
|||
|
lbStatus.Text = otherUser;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Disable all:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public volatile Boolean ResponsePTT = false;
|
|||
|
public volatile Alarms voltmpx = null;
|
|||
|
public volatile transfer125 tmptransVOL = null;
|
|||
|
|
|||
|
public volatile Int32 dataIntVOL = 0;
|
|||
|
public volatile Int32 typeVOL = 0;
|
|||
|
public volatile Int32 IdVOL = 0;
|
|||
|
|
|||
|
|
|||
|
public volatile Int32 callStatusVOL = 0;
|
|||
|
public volatile Int32 callTypeVOL = 0;
|
|||
|
public volatile Int32 grpIDVOL = 0;
|
|||
|
public volatile System.Threading.Timer tclose125 = null;
|
|||
|
|
|||
|
private void checkMessage_ProgressChanged(object sender, ProgressChangedEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
dataIntVOL = e.ProgressPercentage;
|
|||
|
typeVOL = dataIntVOL % 1000;
|
|||
|
IdVOL = dataIntVOL / 1000;
|
|||
|
switch (typeVOL)
|
|||
|
{
|
|||
|
case 100:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
TurnON();
|
|||
|
isON = true; //intreb gaby cum da canalele
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
TurnOFF();
|
|||
|
isON = false;
|
|||
|
lbStatus.Text = radiooffline;
|
|||
|
lbStatus.Update();
|
|||
|
}
|
|||
|
break;
|
|||
|
case 999: //exitra timpu si opresc statia
|
|||
|
rbAllCall.Enabled = true;
|
|||
|
rbGroupCall.Enabled = true;
|
|||
|
rbPrivateCall.Enabled = true;
|
|||
|
#if NOALLCALL
|
|||
|
rbGroupCall.IsChecked = true;
|
|||
|
#else
|
|||
|
rbAllCall.IsChecked = true;
|
|||
|
#endif
|
|||
|
TurnOFF();
|
|||
|
PTTclicked = false;
|
|||
|
lbStatus.Text = radiooffline;
|
|||
|
lbStatus.Update();
|
|||
|
break;
|
|||
|
case 998:
|
|||
|
lbStatus.Text = btRem.Text + " " + MainForm2.returnLNGString("error");
|
|||
|
btRem.Enabled = true;
|
|||
|
EnableChALL();
|
|||
|
PTT_enable();
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
break;
|
|||
|
case 207:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
chanelFree = false;
|
|||
|
DisableALL();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
chanelFree = true;
|
|||
|
EnableALL();
|
|||
|
}
|
|||
|
break;
|
|||
|
case 124:
|
|||
|
SM.Debug("proccess 124 for IP:" + myIP);
|
|||
|
TurnON();
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.green_status;
|
|||
|
isON = true;
|
|||
|
FirstChanle00 = false;
|
|||
|
DisplayChChanel(IdVOL);
|
|||
|
PTTinprogres = false;
|
|||
|
break;
|
|||
|
case 115:
|
|||
|
PTTinprogres = false;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
lbStatus.Text = "";
|
|||
|
//KEY UP
|
|||
|
ReadyfornewKEY = true;
|
|||
|
//nu situ dece e if isON
|
|||
|
if (isON) PTT_enable();
|
|||
|
EnableCMDPTT();
|
|||
|
//confirmare mesajului de OFF
|
|||
|
break;
|
|||
|
case 116:
|
|||
|
PTTinprogres = false;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
lbStatus.Text = "";
|
|||
|
LastTimePriv = DateTime.Now;
|
|||
|
DifTimePriv = LastTimePriv - FirstTimePriv;
|
|||
|
EnableCMDPTT();
|
|||
|
ReadyfornewKEY = true;
|
|||
|
Alarms tmp = null;
|
|||
|
try
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[tbPrivateCallId.Text] != null)
|
|||
|
{
|
|||
|
foreach (Alarms obj in ((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[tbPrivateCallId.Text]]).EventLists)
|
|||
|
if (obj.type == rep_type.CALLSEND) tmp = obj;
|
|||
|
}
|
|||
|
if (tmp != null) tmp.descript = talkTime + ": " + (DifTimePriv.Minutes * 60 + DifTimePriv.Seconds).ToString() + " " + secName;
|
|||
|
if (MainForm2.PopupOpen[tbPrivateCallId.Text] != null)
|
|||
|
{
|
|||
|
((Popupwindow)MainForm2.PopupOpen[tbPrivateCallId.Text]).populate();
|
|||
|
((Popupwindow)MainForm2.PopupOpen[tbPrivateCallId.Text]).putPTTON();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on STOP private call" + ex.ToString());
|
|||
|
}
|
|||
|
break;
|
|||
|
case 117:
|
|||
|
PTTinprogres = false;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
lbStatus.Text = "";
|
|||
|
EnableCMDPTT();
|
|||
|
ReadyfornewKEY = true;
|
|||
|
break;
|
|||
|
case 121:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
PTTinprogres = true;
|
|||
|
lbStatus.Text = rbAllCall.Text;
|
|||
|
lbStatus.Update();
|
|||
|
rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
lbStatus.Text = unable + " " + rbAllCall.Text;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
}
|
|||
|
ResponsePTT = true;
|
|||
|
break;
|
|||
|
case 10:
|
|||
|
String reason = "unknown";
|
|||
|
switch ((RADIO_STATUS)IdVOL)
|
|||
|
{
|
|||
|
case RADIO_STATUS.ALLcall_INIT:
|
|||
|
reason = "All call";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.ALLcall_INPROGRES:
|
|||
|
reason = "All call";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.CallEvent:
|
|||
|
reason = "CallEvent";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.ChannelQuery:
|
|||
|
reason = "ChQuery";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.DKEY:
|
|||
|
reason = "Dkey";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.EnableDisable:
|
|||
|
reason = "En./Dis.";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.FREE:
|
|||
|
reason = "Free";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.GroupCall_INIT:
|
|||
|
reason = "GroupCall";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.GroupCall_INPROGRES:
|
|||
|
reason = "GroupCall";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.HangTime:
|
|||
|
reason = "HangTime";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.OFF:
|
|||
|
reason = "OFF";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.PrivateCall_INIT:
|
|||
|
reason = "Priv. Call";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.PrivateCall_INPROGRES:
|
|||
|
reason = "Priv. Call";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.RemoteMonitor:
|
|||
|
reason = "RM";
|
|||
|
break;
|
|||
|
case RADIO_STATUS.RemoteMonitor_INPROGRES:
|
|||
|
reason = "RM";
|
|||
|
break;
|
|||
|
}
|
|||
|
lbStatus.Text = radiobusy + reason;
|
|||
|
lbStatus.Update();
|
|||
|
break;
|
|||
|
case 122:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
PTTinprogres = true;
|
|||
|
lbStatus.Text = rbPrivateCall.Text + " " + tbPrivateCallId.Text;
|
|||
|
rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;
|
|||
|
try
|
|||
|
{
|
|||
|
((Vehicle)MainForm2.vehicleHT[MainForm2.VehIMEIHash[tbPrivateCallId.Text]]).EventLists.Add(new Alarms(rep_type.CALLSEND, DateTime.Now, "", ""));
|
|||
|
FirstTimePriv = DateTime.Now;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Erorr adding 122:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
lbStatus.Text = unable + " " + rbPrivateCall.Text + " " + tbPrivateCallId.Text;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
}
|
|||
|
ResponsePTT = true;
|
|||
|
break;
|
|||
|
case 162:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
lbStatus.Text = btRem.Text + " " + tbRemote.Text;
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
PTT_disable();
|
|||
|
if (MainForm2.radioType != RADIOTYPE.HYT)
|
|||
|
btDkey.Enabled = false;
|
|||
|
|
|||
|
RecivedData = true;
|
|||
|
if (!ShapeNew.receiving_hash.Contains(currentID))
|
|||
|
{
|
|||
|
ShapeNew.receiving_hash.Add(currentID);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (IdVOL == 2)
|
|||
|
{
|
|||
|
lbStatus.Text = unable + " " + btRem.Text;
|
|||
|
btRem.Enabled = true;
|
|||
|
}
|
|||
|
break;
|
|||
|
case 172:
|
|||
|
PTT_enable();
|
|||
|
RecivedData = false;
|
|||
|
MainForm2.ProrityIP = "";
|
|||
|
parent.SendProrityOFF(PersonalIP);
|
|||
|
if (ShapeNew.receiving_hash.Contains(currentID))
|
|||
|
{
|
|||
|
ShapeNew.receiving_hash.Remove(currentID);
|
|||
|
}
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
btRem.Enabled = true;
|
|||
|
EnableChALL();
|
|||
|
break;
|
|||
|
case 123:
|
|||
|
if (IdVOL == 1)
|
|||
|
{
|
|||
|
PTTinprogres = true;
|
|||
|
lbStatus.Text = rbGroupCall.Text + " " + tbGroupCallId.Text;
|
|||
|
rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
lbStatus.Text = unable + " " + rbGroupCall.Text + " " + tbGroupCallId.Text;
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
}
|
|||
|
ResponsePTT = true;
|
|||
|
break;
|
|||
|
case 125:
|
|||
|
callStatusVOL = (e.UserState as transfer125).callStatus;
|
|||
|
callTypeVOL = (e.UserState as transfer125).callType;
|
|||
|
grpIDVOL = (e.UserState as transfer125).grpID;
|
|||
|
Int64 IdVOLx = (e.UserState as transfer125).intvalID;
|
|||
|
if (callStatusVOL == 1)
|
|||
|
{
|
|||
|
//commet timer to close conversation if conection is over 70 sec
|
|||
|
//tclose125 = new System.Threading.Timer(SendStopfor125, IdVOLx, 70000, System.Threading.Timeout.Infinite);
|
|||
|
try
|
|||
|
{
|
|||
|
if (!Startrecevied)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Console.ForegroundColor = ConsoleColor.Red;
|
|||
|
Console.WriteLine("CallStat:" + callStatusVOL + " calltype:" + callTypeVOL+" grpID:"+grpIDVOL);
|
|||
|
Console.ResetColor();
|
|||
|
string id = "";
|
|||
|
if (MainForm2.VehIMEIHash[IdVOLx.ToString()] != null)
|
|||
|
{
|
|||
|
id = (string)MainForm2.VehIMEIHash[IdVOLx.ToString()];
|
|||
|
if ((id != null) && (id != ""))
|
|||
|
{
|
|||
|
if (id.Length > 17)
|
|||
|
{
|
|||
|
id = id.Remove(17);
|
|||
|
id += "...";
|
|||
|
}
|
|||
|
}
|
|||
|
else id = IdVOLx.ToString();
|
|||
|
}
|
|||
|
else id = IdVOLx.ToString();
|
|||
|
lbIDValue.Text = id;
|
|||
|
lbStatus.Text = id;
|
|||
|
if (callTypeVOL == 101) lbChanel.Text = rbAllCall.Text;
|
|||
|
else if (callTypeVOL == 103) lbChanel.Text = rbGroupCall.Text + " (" + grpIDVOL + ")";
|
|||
|
else if (callTypeVOL == 102) lbChanel.Text = rbPrivateCall.Text;
|
|||
|
|
|||
|
if (callTypeVOL == 101) rbAllCall.IsChecked = true;
|
|||
|
else if (callTypeVOL == 103) { rbGroupCall.IsChecked = true; tbGroupCallId.Text = grpIDVOL.ToString(); }
|
|||
|
else if (callTypeVOL == 102) { rbPrivateCall.IsChecked = true; tbPrivateCallId.Text = IdVOLx.ToString(); }
|
|||
|
else rbAllCall.IsChecked = true; // add new for bug858
|
|||
|
|
|||
|
rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;
|
|||
|
|
|||
|
voltmpx = null;
|
|||
|
if ((MainForm2.VehIMEIHash[IdVOLx.ToString()] != null) && (((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]) != null))
|
|||
|
{
|
|||
|
foreach (Alarms obj in ((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]).EventLists)
|
|||
|
if (obj.type == rep_type.CALLRECIVE) voltmpx = obj;
|
|||
|
if ((voltmpx != null) && (voltmpx.descript == ""))
|
|||
|
((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]).EventLists.Remove(voltmpx);
|
|||
|
((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]).EventLists.Add(new Alarms(rep_type.CALLRECIVE, DateTime.Now, "", ""));
|
|||
|
//for the live maps
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Erorr adding 125:" + ex.ToString());
|
|||
|
}
|
|||
|
PTT_disable();
|
|||
|
btChDown.Enabled = false;
|
|||
|
btChUp.Enabled = false;
|
|||
|
cbChan.Enabled = false;
|
|||
|
cbZone.Enabled = false;
|
|||
|
isEnabled = false;
|
|||
|
btRem.Enabled = false;
|
|||
|
RecivedData = true;
|
|||
|
if (!ShapeNew.receiving_hash.Contains(currentID))
|
|||
|
ShapeNew.receiving_hash.Add(currentID);
|
|||
|
CheckPatchON(true);
|
|||
|
FirstTime = DateTime.Now;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on 125 with status 1 (begin call):" + ex.ToString());
|
|||
|
}
|
|||
|
Startrecevied = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (Startrecevied)
|
|||
|
{
|
|||
|
lbChanel.Text = cbChan.Text;
|
|||
|
lbIDValue.Text = "";
|
|||
|
lbStatus.Text = "";
|
|||
|
PTT_enable();
|
|||
|
btChDown.Enabled = true;
|
|||
|
btChUp.Enabled = true;
|
|||
|
cbChan.Enabled = true;
|
|||
|
cbZone.Enabled = true;
|
|||
|
isEnabled = true;
|
|||
|
btRem.Enabled = true;
|
|||
|
//ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screen_light2_on;
|
|||
|
ScreenPanel.BackgroundImage = global::Dispatcher.Properties.Resources.screenON;
|
|||
|
RecivedData = false;
|
|||
|
MainForm2.ProrityIP = "";
|
|||
|
parent.SendProrityOFF(PersonalIP);
|
|||
|
if (ShapeNew.receiving_hash.Contains(currentID))
|
|||
|
{
|
|||
|
ShapeNew.receiving_hash.Remove(currentID);
|
|||
|
}
|
|||
|
CheckPatchOFF(true);
|
|||
|
LastTime = DateTime.Now;
|
|||
|
DifTime = LastTime - FirstTime;
|
|||
|
try
|
|||
|
{
|
|||
|
voltmpx = null;
|
|||
|
if ((MainForm2.VehIMEIHash[IdVOLx.ToString()] != null) && ((MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]) != null))
|
|||
|
foreach (Alarms obj in ((Vehicle)MainForm2.vehicleHT[(String)MainForm2.VehIMEIHash[IdVOLx.ToString()]]).EventLists)
|
|||
|
if (obj.type == rep_type.CALLRECIVE) voltmpx = obj;
|
|||
|
if (voltmpx != null) voltmpx.descript = talkTime + ": " + (DifTime.Minutes * 60 + DifTime.Seconds).ToString() + " " + secName;
|
|||
|
if (MainForm2.PopupOpen[IdVOLx.ToString()] != null)
|
|||
|
((Popupwindow)MainForm2.PopupOpen[IdVOLx.ToString()]).populate();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on recevie 125" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on 125 with status 2 or 3 (end call or hang time):" + ex.ToString());
|
|||
|
}
|
|||
|
Startrecevied = false;
|
|||
|
if (callStatusVOL == 2)
|
|||
|
{
|
|||
|
rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;
|
|||
|
}
|
|||
|
else if (callStatusVOL == 3)
|
|||
|
{
|
|||
|
rbAllCall.Enabled = true;
|
|||
|
rbGroupCall.Enabled = true;
|
|||
|
rbPrivateCall.Enabled = true;
|
|||
|
#if NOALLCALL
|
|||
|
rbGroupCall.IsChecked = true;
|
|||
|
#else
|
|||
|
rbAllCall.IsChecked = true;
|
|||
|
#endif
|
|||
|
ReadyfornewKEY = true;
|
|||
|
}
|
|||
|
if (tclose125!=null)
|
|||
|
tclose125.Dispose();
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error processmessage on radio:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//send temporar end of call suppended
|
|||
|
private void SendStopfor125(object IDState)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
mainparent.Send_UDP_cmd_sent_withOutID("#0.0#125#" + gwandradID + "." + ((Int64)IDState).ToString() + "#3#101#0#");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Ex:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
private volatile Boolean proces124 = false;
|
|||
|
private volatile Boolean proces125 = false;
|
|||
|
private volatile Boolean proces111or112or113 = false;
|
|||
|
private volatile Boolean proces111or112or113FALSE = false;
|
|||
|
private volatile Boolean proces121or122or123 = false;
|
|||
|
private volatile Boolean proces101or102or103 = false;
|
|||
|
private volatile Boolean procesReport = true;
|
|||
|
private volatile Int32 Idproces = 0;
|
|||
|
private volatile Int32 Limitsend = 0;
|
|||
|
private volatile Int32 X = 0;
|
|||
|
private volatile String volSTR = "";
|
|||
|
long Computation(BackgroundWorker worker, DoWorkEventArgs e)
|
|||
|
{
|
|||
|
threadStarted = true;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
proces124 = false;
|
|||
|
proces125 = false;
|
|||
|
proces111or112or113 = false; proces111or112or113FALSE = false;
|
|||
|
proces121or122or123 = false;
|
|||
|
proces101or102or103 = false;
|
|||
|
Idproces = 0;
|
|||
|
lock (this)
|
|||
|
{
|
|||
|
X=0;
|
|||
|
while (X < WatchList.Count)
|
|||
|
{
|
|||
|
//SM.Debug("in comands " + myIP);
|
|||
|
volSTR = (String)WatchList[X];
|
|||
|
if (mainparent.Listcmd[volSTR] == null)
|
|||
|
ClearList.Add(volSTR);
|
|||
|
else
|
|||
|
{
|
|||
|
if (!((TimerAndResp)mainparent.Listcmd[volSTR]).wait)
|
|||
|
{
|
|||
|
if (((TimerAndResp)mainparent.Listcmd[volSTR]).Respose)
|
|||
|
{
|
|||
|
Int32 tmp = (Int32)((TimerAndResp)mainparent.Listcmd[volSTR]).intval * 1000 + ((TimerAndResp)mainparent.Listcmd[volSTR]).typeID;
|
|||
|
if (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID == 125)
|
|||
|
{
|
|||
|
tmp = 0 * 1000 + ((TimerAndResp)mainparent.Listcmd[volSTR]).typeID;
|
|||
|
tmptransVOL = new transfer125(((TimerAndResp)mainparent.Listcmd[volSTR]).callStatus, ((TimerAndResp)mainparent.Listcmd[volSTR]).callType, ((TimerAndResp)mainparent.Listcmd[volSTR]).GrpID, ((TimerAndResp)mainparent.Listcmd[volSTR]).intval);
|
|||
|
proces125 = true;
|
|||
|
}
|
|||
|
//displayStat
|
|||
|
if (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID == 124) { proces124 = true; Limitsend = 0; }
|
|||
|
if ((((TimerAndResp)mainparent.Listcmd[volSTR]).typeID > 120) && (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID < 124)) { proces121or122or123 = true; Limitsend = 0; }
|
|||
|
procesReport = true;
|
|||
|
if ((tmp > 2114) && (tmp < 2118))
|
|||
|
{
|
|||
|
if (tmp == 2115) Idproces = 111;
|
|||
|
else if (tmp == 2116) Idproces = 112;
|
|||
|
else Idproces = 113;
|
|||
|
Limitsend++;
|
|||
|
proces111or112or113FALSE = true;
|
|||
|
procesReport = false;
|
|||
|
}
|
|||
|
if (procesReport)
|
|||
|
{
|
|||
|
if (!proces125) worker.ReportProgress(tmp);
|
|||
|
else worker.ReportProgress(tmp, tmptransVOL);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (((((TimerAndResp)mainparent.Listcmd[volSTR]).typeID > 110) && (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID < 114)) || (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID == 104) || (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID == 161))
|
|||
|
{
|
|||
|
proces111or112or113 = true;
|
|||
|
Idproces = ((TimerAndResp)mainparent.Listcmd[volSTR]).typeID;
|
|||
|
}
|
|||
|
if (((((TimerAndResp)mainparent.Listcmd[volSTR]).typeID > 100) && (((TimerAndResp)mainparent.Listcmd[volSTR]).typeID < 104)))
|
|||
|
{
|
|||
|
proces101or102or103 = true;
|
|||
|
//Idproces = ((TimerAndResp)mainparent.Listcmd[obj]).typeID;
|
|||
|
}
|
|||
|
}
|
|||
|
mainparent.Listcmd.Remove(volSTR);
|
|||
|
ClearList.Add(volSTR);
|
|||
|
if ((FirstChanle00) && !proces124)
|
|||
|
{
|
|||
|
worker.ReportProgress(1999);//sc_id =1 (fake) si comanda 999
|
|||
|
isON = false;
|
|||
|
FirstChanle00 = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
X++;
|
|||
|
}
|
|||
|
}
|
|||
|
foreach (String obj in ClearList)
|
|||
|
WatchList.Remove(obj);
|
|||
|
ClearList.Clear();
|
|||
|
// ciudat remove 104 pentru care a venit 124
|
|||
|
String tmpIdtoRemove ="";
|
|||
|
if (proces124)
|
|||
|
{
|
|||
|
foreach (String obj in WatchList)
|
|||
|
if (((TimerAndResp)mainparent.Listcmd[obj]).typeID == 104)
|
|||
|
{
|
|||
|
tmpIdtoRemove = obj;
|
|||
|
break;
|
|||
|
}
|
|||
|
if (tmpIdtoRemove != "") WatchList.Remove(tmpIdtoRemove);
|
|||
|
}
|
|||
|
|
|||
|
//SM.Debug("Value for proces121or122or123:" + proces121or122or123 + " and OUTBEFORE:"+OUTBEFORE);
|
|||
|
if ((proces121or122or123)&&(OUTBEFORE)) callStopProcedure(true);
|
|||
|
|
|||
|
if (proces101or102or103) worker.ReportProgress(1115);
|
|||
|
|
|||
|
if (proces111or112or113||proces111or112or113FALSE)
|
|||
|
{
|
|||
|
if (Limitsend < 6)
|
|||
|
{
|
|||
|
if (Idproces == 111)
|
|||
|
{
|
|||
|
if (proces111or112or113) Stop_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
else
|
|||
|
{
|
|||
|
String Totrans = String.Format("#111#{0}#{1}#", gwandradID, String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
WatchList.Add(mainparent.Send_delay(Totrans, 3000, 111, 3000));
|
|||
|
}
|
|||
|
}
|
|||
|
else if (Idproces == 112)
|
|||
|
{
|
|||
|
String Totrans = "#112#" + gwandradID + "." + tbPrivateCallId.Text + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
if (proces111or112or113) WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 3000, 112));
|
|||
|
else WatchList.Add(mainparent.Send_delay(Totrans, 3000, 112, 3000));
|
|||
|
}
|
|||
|
else if (Idproces == 113)
|
|||
|
{
|
|||
|
String Totrans = "#113#" + gwandradID + "." + tbGroupCallId.Text + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
if (proces111or112or113) WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 3000, 113));
|
|||
|
else WatchList.Add(mainparent.Send_delay(Totrans, 3000, 113, 3000));
|
|||
|
}
|
|||
|
else if (Idproces == 161)
|
|||
|
{
|
|||
|
worker.ReportProgress(1998);//sc_id =1 (fake) si comanda 999
|
|||
|
}
|
|||
|
Limitsend++;
|
|||
|
}
|
|||
|
else //station come back to normal state
|
|||
|
{
|
|||
|
worker.ReportProgress(1999);//sc_id =1 (fake) si comanda 999
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on radio list"+ex.ToString());
|
|||
|
}
|
|||
|
Thread.Sleep(10);
|
|||
|
if (MainForm2.ClosingApp)
|
|||
|
{
|
|||
|
SM.Debug("ComputMess Voice: CancellationPending in Radio: ");
|
|||
|
e.Cancel = true;
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void PTT_enable()
|
|||
|
{
|
|||
|
Application.DoEvents();
|
|||
|
try
|
|||
|
{
|
|||
|
btPTT.Enabled = true;
|
|||
|
btPPT.Enabled = true;
|
|||
|
ProgVolum.Value1 = ProgVolum.Maximum - 0 + ProgVolum.Minimum;
|
|||
|
if (MainForm2.radioType != RADIOTYPE.HYT)
|
|||
|
btDkey.Enabled = false;
|
|||
|
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.green_status;
|
|||
|
lbStatus.Text = "";
|
|||
|
foreach (String objkey in MainForm2.PopupOpen.Keys)
|
|||
|
if (((Popupwindow)MainForm2.PopupOpen[objkey]).gwandradID == gwandradID)
|
|||
|
((Popupwindow)MainForm2.PopupOpen[objkey]).EnablePTT();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on enableD PTT" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void PTT_disable()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
btPTT.Enabled = false;
|
|||
|
btPPT.Enabled = false;
|
|||
|
btDkey.Enabled = true;
|
|||
|
/*rbAllCall.Enabled = false;
|
|||
|
rbGroupCall.Enabled = false;
|
|||
|
rbPrivateCall.Enabled = false;*/
|
|||
|
ImgStat.Image = global::Dispatcher.Properties.Resources.yellow_status;
|
|||
|
foreach (String objkey in MainForm2.PopupOpen.Keys)
|
|||
|
if (((Popupwindow)MainForm2.PopupOpen[objkey]).gwandradID == gwandradID)
|
|||
|
((Popupwindow)MainForm2.PopupOpen[objkey]).DisablePTT();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on disable PTT" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void cbPatch_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (cbPatch.IsChecked)
|
|||
|
{
|
|||
|
MainForm2.PatchList.Add(new patchobj(myIP, this));
|
|||
|
isPatch = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
patchobj tmprem = null;
|
|||
|
foreach (patchobj obj in MainForm2.PatchList)
|
|||
|
if (obj.ip == myIP) { tmprem = obj; break; }
|
|||
|
|
|||
|
if (tmprem != null) MainForm2.PatchList.Remove(tmprem);
|
|||
|
isPatch = false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("cbPatch_ToggleStateChanged:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void Send_Private_PTT(String ID)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
Callmade = 102;
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
String Totrans = "#102#" + gwandradID + "." + ID + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 102));
|
|||
|
tbPrivateCallId.Text = ID;
|
|||
|
try
|
|||
|
{
|
|||
|
tbPrivateCallId.Value = Convert.ToInt32(ID);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error convert ID to int" + ex.ToString());
|
|||
|
}
|
|||
|
DisableCMDPTT();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Send_Private_PTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void Send_Remote_Monitor(String ID)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
String Totrans = "#161#" + gwandradID + "." + ID + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 15000, 161));
|
|||
|
tbRemote.Text = ID;
|
|||
|
lbStatus.Text = sendlang + " " + btRem.Text;
|
|||
|
btRem.Enabled = false;
|
|||
|
PTT_disable();
|
|||
|
if (MainForm2.radioType!=RADIOTYPE.HYT)
|
|||
|
btDkey.Enabled = false;
|
|||
|
DisableChALL();
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Send_Private_PTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void DisableChALL()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
btChDown.Enabled = false;
|
|||
|
btChUp.Enabled = false;
|
|||
|
cbChan.Enabled = false;
|
|||
|
cbZone.Enabled = false;
|
|||
|
isEnabled = false;
|
|||
|
mainparent.Send_UDP_cmd_sent_withOutID("#0.0#207#" + gwandradID + "#" + MainForm2.userIDX.ToString() + "#1#");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("DisableChALL:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void EnableChALL()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
btChDown.Enabled = true;
|
|||
|
btChUp.Enabled = true;
|
|||
|
cbChan.Enabled = true;
|
|||
|
cbZone.Enabled = true;
|
|||
|
isEnabled = true;
|
|||
|
mainparent.Send_UDP_cmd_sent_withOutID("#0.0#207#" + gwandradID + "#" + MainForm2.userIDX.ToString() + "#0#");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("EnableChALL:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void Stop_Private_PTT(String ID)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (PTTclicked)
|
|||
|
{
|
|||
|
String Totrans = "#112#" + gwandradID + "." + ID + "#" + "224.20." + MainForm2.userIDX + ".1" + "#";
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 112));
|
|||
|
PTTclicked = false;
|
|||
|
parent.GeneralPTTclick = false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Stop_Private_PTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void Send_PTT(String IP)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
PTTclicked = true;
|
|||
|
parent.GeneralPTTclick = true;
|
|||
|
String Totrans = String.Format("#101#{0}#{1}#", gwandradID, IP);
|
|||
|
Callmade = 101;
|
|||
|
DisableCMDPTT();
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 10000, 101));
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Send_PTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void Stop_PTT(String IP)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (PTTclicked)
|
|||
|
{
|
|||
|
String Totrans = String.Format("#111#{0}#{1}#", gwandradID, IP);
|
|||
|
WatchList.Add(mainparent.Send_UDP_cmd(Totrans, 3000, 111));
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Send_PTT:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void KeyDown(Int32 valuekey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Console.WriteLine("Key down:"+((Char)valuekey).ToString());
|
|||
|
Console.WriteLine("Compare with:" + txAssingKey.Text.ToUpper());
|
|||
|
Console.WriteLine("compare:" + ((Char)valuekey).ToString().CompareTo(txAssingKey.Text.ToUpper()) + " " + ReadyfornewKEY+" "+chanelFree);
|
|||
|
if (((((Char)valuekey).ToString() == txAssingKey.Text.ToUpper())||(((Char)(valuekey-32)).ToString() == txAssingKey.Text.ToUpper())) && (ReadyfornewKEY) && (chanelFree))
|
|||
|
{
|
|||
|
ReadyfornewKEY = false;
|
|||
|
//Send_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
if (rbAllCall.IsChecked) Send_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
else if (rbGroupCall.IsChecked) SendGroupCall();
|
|||
|
else if (rbPrivateCall.IsChecked) SendPrivateCall();
|
|||
|
if (isON) PTT_disable();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//Console.WriteLine("Comparatia:" + ((Char)valuekey).ToString().ToUpper() + " compare:" + MainForm2.KeyforPTTall.ToUpper());
|
|||
|
if (((Char)valuekey).ToString() == MainForm2.KeyforPTTall.ToUpper())
|
|||
|
{
|
|||
|
//Console.WriteLine("PTT ALL PRESS");
|
|||
|
MAKESTOPBOOLPTTALL = false;
|
|||
|
foreach (ShapeNew obj in parent.RadioForms)
|
|||
|
{
|
|||
|
if (obj.isON)
|
|||
|
{
|
|||
|
parent.PTTclickedALL = true;
|
|||
|
obj.Send_PTT_ALL_ON();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("KeyDown:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void KeyUP(Int32 valuekey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if ((((Char)valuekey).ToString() == txAssingKey.Text.ToUpper()) && chanelFree)
|
|||
|
//Stop_PTT(String.Format("224.20.{0}.1", MainForm2.userIDX));
|
|||
|
callStopProcedure(false);
|
|||
|
else
|
|||
|
{
|
|||
|
//Console.WriteLine("Comparatia:" + ((Char)valuekey).ToString().ToUpper() + " compare:" + MainForm2.KeyforPTTall.ToUpper());
|
|||
|
if (((Char)valuekey).ToString().ToUpper() == MainForm2.KeyforPTTall.ToUpper())
|
|||
|
{
|
|||
|
//Console.WriteLine("PTT ALL UP");
|
|||
|
if (!MAKESTOPBOOLPTTALL)
|
|||
|
{
|
|||
|
MAKESTOPBOOLPTTALL = true;
|
|||
|
foreach (ShapeNew obj in parent.RadioForms)
|
|||
|
{
|
|||
|
if (obj.isON)
|
|||
|
{
|
|||
|
obj.Send_PTT_ALL_OFF();
|
|||
|
parent.PTTclickedALL = false;
|
|||
|
}
|
|||
|
}
|
|||
|
Thread.Sleep(1000);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("KeyDown:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btPPT_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!MAKESTOPBOOL)
|
|||
|
{
|
|||
|
if (ResponsePTT) callStopProcedure(false);
|
|||
|
else OUTBEFORE = true;
|
|||
|
btPPT.Enabled = false;
|
|||
|
btPTT.Enabled = false;
|
|||
|
MAKESTOPBOOL = true;
|
|||
|
Thread.Sleep(2000);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Ex:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ChangeList(Int32 CallType,Int32 imei,Int64 startTime, Int64 stopTime)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!RadioControl.TCPstarted)
|
|||
|
{
|
|||
|
parent.StartTCP();
|
|||
|
Thread.Sleep(100);
|
|||
|
}
|
|||
|
if (RadioControl.TCPstarted)
|
|||
|
{
|
|||
|
Int64 tmp = imei;
|
|||
|
Byte Imei_1 = (Byte)(tmp / (256 * 256 * 256));
|
|||
|
tmp = tmp % (256 * 256 * 256);
|
|||
|
Byte Imei_2 = (Byte)(tmp / (256 * 256));
|
|||
|
tmp = tmp % (256 * 256);
|
|||
|
Byte Imei_3 = (Byte)(tmp / 256);
|
|||
|
Byte Imei_4 = (Byte)(tmp % 256);
|
|||
|
|
|||
|
tmp = startTime;
|
|||
|
Byte startTime_1 = (Byte)(tmp / (256*256*256));
|
|||
|
tmp = tmp % (256 * 256 * 256);
|
|||
|
Byte startTime_2 = (Byte)(tmp / (256 * 256));
|
|||
|
tmp = tmp % (256 * 256);
|
|||
|
Byte startTime_3 = (Byte)(tmp / 256);
|
|||
|
Byte startTime_4 = (Byte)(tmp % 256);
|
|||
|
|
|||
|
tmp = stopTime;
|
|||
|
Byte stopTime_1 = (Byte)(tmp / (256 * 256 * 256));
|
|||
|
tmp = tmp % (256 * 256 * 256);
|
|||
|
Byte stopTime_2 = (Byte)(tmp / (256 * 256));
|
|||
|
tmp = tmp % (256 * 256);
|
|||
|
Byte stopTime_3 = (Byte)(tmp / 256);
|
|||
|
Byte stopTime_4 = (Byte)(tmp % 256);
|
|||
|
|
|||
|
parent.tcp.Send(new byte[] { 0, 1, (byte)gwID, (byte)radID, Imei_1, Imei_2, Imei_3, Imei_4, startTime_1, startTime_2, startTime_3, startTime_4, stopTime_1, stopTime_2, stopTime_3, stopTime_4, (byte)CallType });
|
|||
|
if (ckShowLogin.Checked)
|
|||
|
{
|
|||
|
//if ()
|
|||
|
//parent.tcp.Send(new byte[] { 0, 2, 0, (byte)MainForm2.userIDX });
|
|||
|
parent.tcp.Send(new byte[] { 0, 2, 0, (byte)(((User)((RadListDataItem)cbUsers.SelectedItem).Value).Id), Imei_1, Imei_2, Imei_3, Imei_4, startTime_1, startTime_2, startTime_3, startTime_4, stopTime_1, stopTime_2, stopTime_3, stopTime_4, (byte)CallType });
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on sent tcp cmd: "+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ckShowLogin_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
ChangeList(10,0,0,0);
|
|||
|
}
|
|||
|
|
|||
|
private void btRem_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Int64 id = 1;
|
|||
|
if (isON)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
id = Convert.ToInt64(tbRemote.Text);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
id = 0;
|
|||
|
}
|
|||
|
if ((id >= 1) && (id <= 16776415))
|
|||
|
{
|
|||
|
if (MainForm2.VehIMEIHash[id.ToString()] != null) Send_Remote_Monitor(id.ToString());
|
|||
|
else lbStatus.Text = id.ToString() + " " + MainForm2.returnLNGString("IsNotYourUnit");
|
|||
|
}
|
|||
|
else lbStatus.Text = MainForm2.returnLNGString("errorIDLim");
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btRem_Click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btnRefresh_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
RefreshChanel();
|
|||
|
rbAllCall.Enabled = true;
|
|||
|
rbGroupCall.Enabled = true;
|
|||
|
rbPrivateCall.Enabled = true;
|
|||
|
}
|
|||
|
|
|||
|
private volatile Boolean INPTT = false;
|
|||
|
private void LimitPTT_Tick(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
INPTT = false;
|
|||
|
LimitPTT.Stop();
|
|||
|
LimitPTT.Enabled = false;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("LimitPTT:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btPPT_LostMouseCapture(object sender, MouseEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!MAKESTOPBOOL)
|
|||
|
{
|
|||
|
if (ResponsePTT) callStopProcedure(false);
|
|||
|
else OUTBEFORE = true;
|
|||
|
btPPT.Enabled = false;
|
|||
|
btPTT.Enabled = false;
|
|||
|
MAKESTOPBOOL = true;
|
|||
|
Thread.Sleep(2000);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Ex:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btDkey_MouseDown(object sender, MouseEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (MainForm2.radioType == RADIOTYPE.HYT)
|
|||
|
{
|
|||
|
callStopProcedure(false);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
String Totrans = String.Format("#160#{0}#", gwandradID);
|
|||
|
mainparent.Send_UDP_cmd(Totrans, 0, 0);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("btDkey_Click:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void cbUsers_SelectedIndexChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (afterload) ChangeList(10,0,0,0);
|
|||
|
}
|
|||
|
|
|||
|
private void radioFrom_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
radStatusStrip1.ThemeName="Breeze";
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor3 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor4 = System.Drawing.Color.White;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor = System.Drawing.Color.LightGray;
|
|||
|
this.ProgVolum.IndicatorElement1.BackColor2 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.IndicatorElement2.BackColor3 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.IndicatorElement2.BackColor4 = System.Drawing.Color.White;
|
|||
|
this.ProgVolum.IndicatorElement2.BackColor = System.Drawing.Color.LightGray;
|
|||
|
this.ProgVolum.IndicatorElement2.BackColor2 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.BackColor3 = System.Drawing.SystemColors.ControlLight;
|
|||
|
this.ProgVolum.BackColor4 = System.Drawing.Color.White;
|
|||
|
this.ProgVolum.BackColor = System.Drawing.Color.LightGray;
|
|||
|
this.ProgVolum.BackColor2 = System.Drawing.SystemColors.ControlLight;
|
|||
|
if (MainForm2.radioType == RADIOTYPE.REPEATER_TRBO)
|
|||
|
{
|
|||
|
ChangeList(10, 0, 0, 0);
|
|||
|
OnRecording = true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on change progress bar color:"+ex.ToString());
|
|||
|
}
|
|||
|
/* if (MainForm2.Hytera)
|
|||
|
{
|
|||
|
this.ThemeName = "Desert";
|
|||
|
this.radTabStrip1.Location = new Point(0, 63);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
this.ThemeName = "Breeze";
|
|||
|
this.radTabStrip1.Location = new Point(0, 50);
|
|||
|
}*/
|
|||
|
}
|
|||
|
|
|||
|
private void cbVehName_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
tbPrivateCallId.Text = (((RadListDataItem)cbVehName.Items[cbVehName.SelectedIndex]).Value as VehandID).Imei;
|
|||
|
tbRemote.Text = (((RadListDataItem)cbVehName.Items[cbVehName.SelectedIndex]).Value as VehandID).Imei;
|
|||
|
try
|
|||
|
{
|
|||
|
tbPrivateCallId.Value = Convert.ToInt32((((RadListDataItem)cbVehName.Items[cbVehName.SelectedIndex]).Value as VehandID).Imei);
|
|||
|
tbRemote.Value = Convert.ToInt32((((RadListDataItem)cbVehName.Items[cbVehName.SelectedIndex]).Value as VehandID).Imei);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error convert imei" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("cbVehName_SelectedIndexChanged:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void newtab_SelectedPageChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (newtab.SelectedPage.Name == "tbRecord")
|
|||
|
{
|
|||
|
ChangeList(10, 0, 0, 0);
|
|||
|
OnRecording = true;
|
|||
|
}
|
|||
|
else OnRecording = false;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("radTabStrip1_TabSelected:" + ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void cbVoicePriority_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
if (this.cbVoicePriority.ToggleState == ToggleState.On)
|
|||
|
{
|
|||
|
MainForm2.ProrityIP = PersonalIP;
|
|||
|
parent.SendProrityOFF(PersonalIP);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ckDataFilter_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
if (ckDataFilter.Checked)
|
|||
|
{
|
|||
|
dtFrom.Enabled = true;
|
|||
|
dtTo.Enabled = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dtFrom.Enabled = false;
|
|||
|
dtTo.Enabled = false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ckUnitName_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
if (this.ckUnitName.Checked) this.cbUnitName.Enabled = true;
|
|||
|
else this.cbUnitName.Enabled = false;
|
|||
|
}
|
|||
|
|
|||
|
private void btFilter_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
Int32 imei = 0;
|
|||
|
Int64 startTime = 0;
|
|||
|
Int64 stopTime = 0;
|
|||
|
Int32 CallType = 10;
|
|||
|
Boolean Valid = true;
|
|||
|
if (ckUnitName.Checked) imei = Convert.ToInt32((((RadListDataItem)cbUnitName.Items[cbUnitName.SelectedIndex]).Value as VehandID).Imei);
|
|||
|
|
|||
|
if (ckDataFilter.Checked)
|
|||
|
{
|
|||
|
if (convDT.GetSecondsFromDT(dtFrom.Value) > convDT.GetSecondsFromDT(dtTo.Value))
|
|||
|
{
|
|||
|
if ((MainForm2.radioType == RADIOTYPE.HARRIS) || (MainForm2.radioType == RADIOTYPE.ATLAS)) ((RadLabel)RadMessageBox.Instance.Controls[1]).LabelElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
RadMessageBox.Show(msgLimit);
|
|||
|
Valid = false;
|
|||
|
}
|
|||
|
if (Valid)
|
|||
|
{
|
|||
|
startTime = convDT.GetSecondsLocalFromDT(dtFrom.Value);
|
|||
|
stopTime = convDT.GetSecondsLocalFromDT(dtTo.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
if (cbCallType.Checked)
|
|||
|
{
|
|||
|
CallType = dropCalltype.SelectedIndex;
|
|||
|
if (dropCalltype.SelectedIndex > 2)
|
|||
|
CallType = dropCalltype.SelectedIndex + 1;
|
|||
|
} ///CallType = Convert.ToInt32((((RadListDataItem)dropCalltype.Items[dropCalltype.SelectedIndex]).Value as CallType_Drop).Id);
|
|||
|
if (Valid)
|
|||
|
{
|
|||
|
RecordingList.Rows.Clear();
|
|||
|
ChangeList(CallType,imei, startTime, stopTime);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnLoad(EventArgs e)
|
|||
|
{
|
|||
|
base.OnLoad(e);
|
|||
|
dropCalltype.DataSource = new CallType_DropCollection();
|
|||
|
|
|||
|
dropCalltype.DisplayMember = "Name";
|
|||
|
dropCalltype.ValueMember = "Id";
|
|||
|
}
|
|||
|
|
|||
|
private void dropCalltype_ItemDataBound(object sender, ListItemDataBoundEventArgs args)
|
|||
|
{
|
|||
|
var test = args.NewItem.DataBoundItem as CallType_Drop;
|
|||
|
if (test == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
args.NewItem.Image = test.Image;
|
|||
|
}
|
|||
|
|
|||
|
private void cbCallType_ToggleStateChanged(object sender, StateChangedEventArgs args)
|
|||
|
{
|
|||
|
if (this.cbCallType.Checked) this.dropCalltype.Enabled = true;
|
|||
|
else this.dropCalltype.Enabled = false;
|
|||
|
}
|
|||
|
|
|||
|
public void AddRow(Recording tmpRecord)
|
|||
|
{
|
|||
|
///RecordingList.Rows.AddNew();
|
|||
|
Boolean stop100 = false;
|
|||
|
ArrayList tmp = new ArrayList();
|
|||
|
tmp.Add(tmpRecord);
|
|||
|
if (recordArrayList.Count > 110) stop100 = true;
|
|||
|
Int32 cnt = 0;
|
|||
|
foreach (Recording obj in recordArrayList)
|
|||
|
{
|
|||
|
cnt++;
|
|||
|
tmp.Add(obj);
|
|||
|
if ((stop100)&&(cnt > 100)) break;
|
|||
|
}
|
|||
|
populateRecList(tmp);
|
|||
|
}
|
|||
|
|
|||
|
private void btExport_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
Boolean errormess = false;
|
|||
|
String filename = "";
|
|||
|
try
|
|||
|
{
|
|||
|
filename = System.Windows.Forms.Application.StartupPath + @"\Call_log_" + DateTime.Now.Month + "_" + DateTime.Now.Day + "_" + DateTime.Now.Year + "_Time_" + DateTime.Now.Hour + "_" + DateTime.Now.Minute + ".csv";
|
|||
|
StreamWriter sw = new StreamWriter(filename, false);
|
|||
|
// First we will write the headers.
|
|||
|
int iColCount = RecordingList.ColumnCount;
|
|||
|
for (int i = 2; i < iColCount-1; i++)
|
|||
|
{
|
|||
|
if ((i != 7) && (i != 8))
|
|||
|
{
|
|||
|
sw.Write(RecordingList.Columns[i].HeaderText);
|
|||
|
if (i < iColCount - 2)
|
|||
|
{
|
|||
|
sw.Write(",");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
sw.Write(sw.NewLine);
|
|||
|
for (int j = 0; j < RecordingList.Rows.Count(); j++)
|
|||
|
{
|
|||
|
for (int i = 2; i < iColCount-1; i++)
|
|||
|
{
|
|||
|
if (!Convert.IsDBNull(RecordingList.Rows[j].Cells[i].Value))
|
|||
|
{
|
|||
|
if (i == 2)
|
|||
|
{
|
|||
|
switch (Convert.ToInt32(RecordingList.Rows[j].Cells[10].Value))
|
|||
|
{
|
|||
|
case 0:
|
|||
|
sw.Write("Private call made");
|
|||
|
break;
|
|||
|
case 1:
|
|||
|
sw.Write("Group call made");
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
sw.Write("ALL call made");
|
|||
|
break;
|
|||
|
case 4:
|
|||
|
sw.Write("Private call received");
|
|||
|
break;
|
|||
|
case 5:
|
|||
|
sw.Write("Group call received");
|
|||
|
break;
|
|||
|
case 6:
|
|||
|
sw.Write("ALL call received");
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if ((i != 7) && (i != 8) && (RecordingList.Rows[j].Cells[i].Value != null))
|
|||
|
{
|
|||
|
sw.Write(RecordingList.Rows[j].Cells[i].Value.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if ((i < iColCount - 2)&&((i != 7) && (i != 8)))
|
|||
|
{
|
|||
|
sw.Write(",");
|
|||
|
}
|
|||
|
}
|
|||
|
sw.Write(sw.NewLine);
|
|||
|
}
|
|||
|
|
|||
|
sw.Close();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
errormess = true;
|
|||
|
SM.Debug("Error write file" + ex.ToString());
|
|||
|
try
|
|||
|
{
|
|||
|
if ((MainForm2.radioType == RADIOTYPE.HARRIS) || (MainForm2.radioType == RADIOTYPE.ATLAS)) ((RadLabel)RadMessageBox.Instance.Controls[1]).LabelElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
RadMessageBox.Show("Erorr exporting file.", MainForm2.returnLNGString("war"), MessageBoxButtons.OK, RadMessageIcon.Error);
|
|||
|
}
|
|||
|
catch (Exception ex2)
|
|||
|
{
|
|||
|
SM.Debug("Error exception2:" + ex2.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
try
|
|||
|
{
|
|||
|
if (!errormess)
|
|||
|
{
|
|||
|
if ((MainForm2.radioType == RADIOTYPE.HARRIS) || (MainForm2.radioType == RADIOTYPE.ATLAS)) ((RadLabel)RadMessageBox.Instance.Controls[1]).LabelElement.ForeColor = MainForm2.HarTextColor;
|
|||
|
if (filename.Length > 60)
|
|||
|
{
|
|||
|
if (filename.IndexOf('\\', 50)>0)
|
|||
|
filename = filename.Insert(filename.IndexOf('\\', 50), "\n");
|
|||
|
}
|
|||
|
RadMessageBox.Show("Export file finish.\nFile is in: " + filename, "Info", MessageBoxButtons.OK, RadMessageIcon.Info);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
SM.Debug("Error on put mess on screen:"+ex.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void btPTT_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|