SafeDispatch/SafeMobileLIB_DLL/SMdb_accessMS.cs
2024-02-22 18:43:59 +02:00

363 lines
10 KiB
C#

using System;
using System.Xml;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.IO;
using System.Windows.Forms;
using Npgsql;
namespace SafeMobileLib
{
public class ZoneClass
{
public ZoneClass(String _name, Int32 _id, ArrayList _arr)
{
id = _id;
name = _name;
arrSc_id = _arr;
new_arrSc_id = _arr;
}
public ZoneClass(ZoneClass _oldzone, Int32 _id, ArrayList _arr)
{
id = _id;
arrSc_id = _arr;
new_arrSc_id = new ArrayList();
foreach (PointonZone obj in arrSc_id)
{
PointonZone tmp = new PointonZone(obj.lat, obj.lng, obj.idx);
new_arrSc_id.Add(tmp);
}
position = 0;
name = _oldzone.name;
color = _oldzone.color;
useridx = _oldzone.useridx;
AlarmType = _oldzone.AlarmType;
sentmsg = _oldzone.sentmsg;
msgbody = _oldzone.msgbody;
unitids = _oldzone.unitids;
sentemail = _oldzone.sentemail;
email = _oldzone.email;
subj = _oldzone.subj;
body = _oldzone.body;
imeilist = _oldzone.imeilist;
sentmsg2 = _oldzone.sentmsg2;
msgbody2 = _oldzone.msgbody2;
speed = _oldzone.speed;
callout = _oldzone.callout;
calloutSeverity = _oldzone.calloutSeverity;
}
public Int32 zone_id
{
get
{
return id;
}
}
public Int32 action
{
get
{
return position;
}
}
public ArrayList arrSc_id;
public ArrayList new_arrSc_id;
public string name;
public Int32 id;
private Int32 position = 0; //0=nu stiu 2=IN 1=OUT
public ZoneClass(String _name, Int32 _color, Int32 _useridx, Int32 _AlarmType, Boolean _sentmsg, String _msgbody, String _unitids, Boolean _sentemail, String _email, String _subj, String _body, String _imeilist, Boolean _sentmsg2, String _msgbody2,Int32 _speed, Boolean _callout, int _calloutSeverity)
{
position = 0;
name = _name;
color = _color;
useridx = _useridx;
AlarmType = _AlarmType;
sentmsg = _sentmsg;
msgbody = _msgbody;
unitids = _unitids;
sentemail = _sentemail;
email = _email;
subj = _subj;
body = _body;
imeilist = _imeilist;
sentmsg2 = _sentmsg2;
msgbody2 = _msgbody2;
speed = _speed;
callout = _callout;
calloutSeverity = _calloutSeverity;
}
public ZoneClass(String _name, Int32 _color, Int32 _useridx, Int32 _AlarmType, Boolean _sentmsg, String _msgbody, String _unitids, Boolean _sentemail, String _email, String _subj, String _body, Boolean _sentmsg2, String _msgbody2, Int32 _speed, Boolean _callout, int _calloutSeverity)
{
position = 0;
name = _name;
color = _color;
useridx = _useridx;
AlarmType = _AlarmType;
sentmsg = _sentmsg;
msgbody = _msgbody;
unitids = _unitids;
sentemail = _sentemail;
email = _email;
subj = _subj;
body = _body;
sentmsg2 = _sentmsg2;
msgbody2 = _msgbody2;
speed = _speed;
callout = _callout;
calloutSeverity = _calloutSeverity;
}
public Int32 color;
public Int32 speed;
public Int32 useridx = 0;
public String speedUnit = "k";
public Int32 AlarmType = 3;
public Boolean sentmsg = true;
public String msgbody = "";
public Boolean sentmsg2 = true;
public String msgbody2 = "";
public String imeilist = "";
public String unitids = "";
public Boolean sentemail = true;
public String email = "";
public String subj = "";
public String body = "";
public String Name
{
get
{
return name;
}
}
public String CheckZone(Double _lat, Double _lng, out Int32 _position)
{
String response = "";
Boolean tmp = false;
PointonZone oldPoint=null;
if (arrSc_id.Count > 0)
oldPoint = (PointonZone)arrSc_id[arrSc_id.Count - 1];
else
{
_position = 0;
return response;
}
foreach (PointonZone obj in arrSc_id)
{
if (((obj.lat > _lat) != (oldPoint.lat > _lat)) && (_lng < (oldPoint.lng - obj.lng) * (_lat - obj.lat) / (oldPoint.lat - obj.lat) + obj.lng))
tmp = !tmp;
oldPoint = obj;
}
if ((position != 2) && (tmp)) { position = 2; response = "IN " + name; }
else if ((position != 1) && (!tmp)) { position = 1; response = "OUT " + name; }
_position = position;
return response;
}
public Boolean callout = true;
public int calloutSeverity = 3;
}
public class PointonZone
{
public PointonZone(Double latParam, Double lngParam, Int32 idxParam)
{
lat = latParam;
lng = lngParam;
idx = idxParam;
}
public Double lat, lng;
public Int32 idx;
}
public class LandMark
{
public String name;
public double lat;
public double lng;
private Int32 idx;
private Int32 position; //0=nu stiu 2=IN 1=OUT
public Int32 useridx = 0;
public String speedUnit = "k";
public Boolean callout = true;
public int calloutSeverity = 3;
public LandMark(String paramName, Double lat1, Double lng1, Int32 paramidx, Int32 _useridx, Boolean _callout, int _calloutSeverity)
{
name = paramName;
idx = paramidx;
lat = lat1;
lng = lng1;
position = 0;
useridx = _useridx;
callout = _callout;
calloutSeverity = _calloutSeverity;
}
public String CheckPosition(Double _lat, Double _lng)
{
double pi = 3.1415926535897932384626433832795;
double rad = 180 / pi;
double dist = (3958 * pi * Math.Sqrt((lat - _lat) * (lat - _lat) + Math.Cos(lat / rad) * Math.Cos(_lat / rad) * (lng - _lng) * (lng - _lng)) / 180);
double Distance = Math.Round(((dist * 1.609344) * 1000)) / 1000;
String tmp = "";
if (Distance < 0.05)
{
if (position != 2) { tmp = "IN " + name; }
position = 2;
}
else
{
if (position != 1) { tmp = "OUT " + name; }
position = 1;
}
return tmp;
}
public Int32 land_id
{
get
{
return idx;
}
}
public Int32 action
{
get
{
return position;
}
}
}
public class imei_and_message
{
public String mess;
public String imei;
public Double lat;
public Double lng;
public UInt32 TimeGMT;
public Int32 Speed;
public Int32 DI;
public imei_and_message(String _mess, String _imei, Double _lat, Double _lng, UInt32 _TimeGMT, Int32 _Speed)
{
mess = _mess;
imei = _imei;
lat = _lat;
lng = _lng;
TimeGMT = _TimeGMT;
Speed = _Speed;
DI = 0;
}
public imei_and_message(String _mess, String _imei, Double _lat, Double _lng, UInt32 _TimeGMT, Int32 _Speed, Int32 _DI)
{
mess = _mess;
imei = _imei;
lat = _lat;
lng = _lng;
TimeGMT = _TimeGMT;
Speed = _Speed;
DI = _DI;
}
}
public class Messages4vAL
{
public int msgType;
public String IMEI;
public String cmd;
public Int32 IdxDB;
public String TelNumber;
public Int32 Status;
public Messages4vAL(Int32 _IsPoll, string _IMEI, string _cmd, Int32 _IdxDB, String _TelNumber, int _status)
{
msgType = _IsPoll;
IMEI = _IMEI;
cmd = _cmd;
IdxDB = _IdxDB;
TelNumber = _TelNumber;
Status = _status;
}
}
public class RFIDs
{
public Int32 id;
public Int32 sc_id;
public string Vehicle_Name;
public string Passenger_Name;
public string RFID;
//pa.id,pa.rfid,pa.name,veh.name,pa.sc_id
public RFIDs(string _rfid, string _name, string _vehname, Int32 _sc_id,Int32 _id)
{
id = _id;
sc_id = _sc_id;
Vehicle_Name = _vehname;
Passenger_Name = _name;
RFID = _rfid;
}
}
public class Vehicle_sc_id
{
public int sc_id;
private string name;
public Vehicle_sc_id(int _id, string _name)
{
sc_id = _id;
name = _name;
}
public string Name
{
get
{
return name;
}
}
}
public class Vehicle_Data
{
public String Name;
public int sc_id;
public int sip_id;
public int type;
public string imei;
public double lat;
public double lng;
public ArrayList zonelist;
public ArrayList landlist;
public Alarm alm;
public bool active;
public Vehicle_Data(int _sc_id, int _sip_id, string _imei, double _lat, double _lng, string _name, Alarm _alm)
{
sc_id = _sc_id;
sip_id = _sip_id;
imei = _imei;
Name = _name;
lat = _lat;
lng = _lng;
zonelist = new ArrayList();
landlist = new ArrayList();
alm = _alm;
active = false;
}
}
}