internal static extern int VibrateGetDeviceCaps(Vibrate.VibrationCapabilities caps);
private void CheckStation() { Logger.Log("CheckStation - Start"); double _AlertDistance = m_Options.AlertDistance; foreach (Station _Station in m_ItemsControl.Items) { //m_Latitude = 48.323644; //m_Longitude = 10.050087; //Have to check dinamically of any changes made on the options dialog var _StationChanges = from _StationChange in m_Options.GetStations() where _StationChange.StationID == _Station.StationID select _StationChange; if (null != _StationChanges.SingleOrDefault()) { _Station.PerformAlert = _StationChanges.SingleOrDefault().PerformAlert; } else { _Station.PerformAlert = false; } _Station.RefreshDistanceTo(m_Latitude, m_Longitude); _Station.AlertDistance = _AlertDistance; m_ItemsControl.Items.GetContentPresenter(_Station).RefreshContent(); Application.DoEvents(); if (_Station.PerformAlert && _AlertDistance > 0 && _Station.DistanceToDestination < _AlertDistance) { if (m_Options.SmsActive && !m_SMSSent) { //TODO : Calculate speed without GPS information, only with distance. //if (m_GpsPosition.SpeedValid) //{ // _EstimatedTime = Utils.ETAString(", estaria llegando en {0} {1}", Utils.EstimatedTimeOfArrival(m_GpsPosition.Speed, _Distance)); //} //TODO : Multilanguage DistanceTypes _DistanceType = _Station.DistanceType; string _DistanceTypeFormat = "I'm {0:0.00} km from {1}"; if (_DistanceType == DistanceTypes.Meters) { _DistanceTypeFormat = "I'm {0:0.00} meters from {1}"; } string _SMSMessage = string.Format(_DistanceTypeFormat, (_DistanceType == DistanceTypes.Meters ? Convert.ToInt32(_Station.DistanceToDestination) : _Station.DistanceToDestination), _Station.Name); SendSMS(_SMSMessage); } Logger.Log("Video Power on"); //Power on the device if stand by if (NativeMethods.GetVideoPowerState() != NativeMethods.VideoPowerState.VideoPowerOn) { NativeMethods.SetVideoPowerState(NativeMethods.VideoPowerState.VideoPowerOn); } //Doesnt matter if the Ringer is on/off, //when off it will vibrates when on will do both. Vibrate.PlaySync(150, 150, 150, 150); Vibrate.PlaySnd(); Logger.Log("Vibrate and Sound played"); } } NativeMethods.PowerPolicyNotify(NativeMethods.PPNMessage.PPN_UNATTENDEDMODE, 0); Logger.Log("CheckStation - Finished"); //string _Message = string.Empty; //string _EstimatedTime = string.Empty; //Color _Color = Color.Green; //double _Distance = 0; //double _AlertInstance = m_Options.GetAlert(); //bool _Alert = false; //try //{ // Station _Station = m_Options.GetStation(); // if (null != _Station) // { // //TEST // //_Station.Latitude = 48.323644; // //_Station.Longitude = 10.050087; // txtStatus.Text = string.Format("{0} Lat:{1}-Long:{2} <-> Current Lat:{3}-Lon:{4}", _Station.Name, _Station.Latitude, _Station.Longitude, m_Latitude, m_Longitude); // _Distance = _Station.DistanceTo(m_Latitude, m_Longitude); // if (_AlertInstance > 0 && _Distance < _AlertInstance) // { // _Color = Color.Red; // _Alert = true; // } // //if (m_GpsPosition.SpeedValid) // //{ // // _EstimatedTime = Utils.ETAString("ETA: {0} {1}", Utils.EstimatedTimeOfArrival(m_GpsPosition.Speed, _Distance)); // //} // //"{0} in {1:0.00} km. {2}" // _Message = string.Format("{0} in {1:0.00} km", _Station.Name, _Distance/*, _EstimatedTime*/); // } // else // { // txtStatus.Text = "Station cannot be found"; // } //} //catch (Exception ex) //{ // _Color = Color.Red; // _Message = ex.Message; //} //lblAlert.ForeColor = _Color; //lblAlert.Text = _Message; //if (_Alert) //{ // //TODO : Recheck this option. // //if (chkSendSMS.Checked && !m_SMSSent) // //{ // // if (m_GpsPosition.SpeedValid) // // { // // _EstimatedTime = Utils.ETAString(", estaria llegando en {0} {1}", Utils.EstimatedTimeOfArrival(m_GpsPosition.Speed, _Distance)); // // } // // //TODO : Multilanguage // // string _DistanceType = (((_Distance * 1000) < 1000) ? "metros" : "km"); // // string _SMSMessage = string.Format("Estoy a {0} {1} de {2}", _Distance, _DistanceType, _Station, _EstimatedTime); // // SendSMS(_SMSMessage); // //} // //Doesnt matter if the Ringer is on/off, // //when off it will vibrates when on will do both. // //m_Vibrate.Play(); // //Application.DoEvents(); // //m_Vibrate.Play(); // //Application.DoEvents(); // //m_Vibrate.Play(); // Vibrate.PlaySync(300, 300, 300, 300); // Vibrate.PlaySnd(); //} }