⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventmanager.cs

📁 用C#实现的取得CellID和LAC的程序源代码!
💻 CS
字号:
using System;
using System.Collections;
using System.Data;

namespace NiceTracker.Events
{
	/// <summary>
	/// Summary description for EventManager.
	/// </summary>
	public class EventManager
	{
		public const string EVENT_FLASH_BACKLIGHT = "NiceTracker.Events.EventFlashBacklight";
		public const string EVENT_IP_POST = "NiceTracker.Events.EventInternetPost";
		public const string EVENT_SHOW_PICTURE = "NiceTracker.Events.EventShowPicture";
		public const string EVENT_PLAY_SOUND = "NiceTracker.Events.EventPlaySound";
		public const string EVENT_SET_VOLUME = "NiceTracker.Events.EventSetVolume";

		private EventDB eventDB = new EventDB();		
		private Hashtable registeredEventList = new Hashtable();
		private ArrayList eventList = new ArrayList();
		private MainForm m_mainForm = null;

		public EventManager( MainForm mainForm )
		{
			m_mainForm = mainForm;

			registeredEventList.Add( "Flash backlight", "NiceTracker.Events.EventFlashBacklight" );			
			registeredEventList.Add( "Internet post", "NiceTracker.Events.EventInternetPost" );			
			registeredEventList.Add( "Show Picture", "NiceTracker.Events.EventShowPicture" );			
			registeredEventList.Add( "Play Sound", "NiceTracker.Events.EventPlaySound" );			
			registeredEventList.Add( "Set Volume", "NiceTracker.Events.EventSetVolume" );			

			// Load event data
			eventDB.Load();

			foreach ( DataRow dr in eventDB.DTEvents.Rows )
			{
				EventBase evt = CreateEvent( dr[ "type" ].ToString() );
				evt.SetConfigurationByString( dr[ "config" ].ToString() );
				eventList.Add( evt );
			}			
		}

		public EventBase CreateEvent( string eventType )
		{
			if ( eventType == EVENT_FLASH_BACKLIGHT )
				return new EventFlashBacklight();
			else if ( eventType == EVENT_IP_POST )
				return new EventInternetPost();
			else if ( eventType == EVENT_SHOW_PICTURE )
				return new EventShowPicture( m_mainForm );														  
			else if ( eventType == EVENT_PLAY_SOUND )
				return new EventPlaySound();
			else if ( eventType == EVENT_SET_VOLUME )
				return new EventSetVolume ();
			else
				return null;
		}

		
		public string GetTypeFromFriendly( string friendlyName )
		{
			return registeredEventList[ friendlyName ].ToString();
		}

		public void AddEvent( EventBase gsmEvent )
		{			
			eventList.Add( gsmEvent );
		}

		public EventBase GetEvent( string eventDescription )
		{
			bool found = false;
			int count = eventList.Count - 1;
			EventBase evt = null;
			
			while ( count >= 0 && !found )
			{
				EventBase currentEvent = eventList[ count ] as EventBase;
				if ( currentEvent.Description == eventDescription )
				{
					found = true;
					evt = currentEvent;
				}

				count--;
			}

			return evt;
		}

		public void RemoveEvent( string eventDescription )
		{			
			EventBase evt = GetEvent( eventDescription );
			eventList.Remove( evt );
		}

		public ICollection UserEvents
		{
			get
			{
				return eventList;
			}
		}

		public ICollection RegisteredEvents
		{
			get
			{
				return registeredEventList.Keys;
			}
		}

		public bool InEventCatchment( GSMCell cell )
		{
			bool returnValue = true;

			foreach ( EventBase eventBase in eventList )
			{
				returnValue = returnValue & eventBase.CheckEventCatchment( cell );
			}

			return returnValue;
		}

		public void ProcessEvents( GSMCell cell, GSMCell lastCell )
		{
			foreach ( EventBase eventBase in eventList )
			{
				try
				{
					if ( eventBase.Trigger == EventBase.TriggerType.EnterCell )
						eventBase.Perform( cell );
					else if ( eventBase.Trigger == EventBase.TriggerType.ExitCell )
						eventBase.Perform( lastCell );
					else if ( eventBase.Trigger == EventBase.TriggerType.CellChanged )
					{
						// Overkill, but make sure we've moved
						if ( cell.CI != lastCell.CI && cell.LAC != lastCell.LAC )
							eventBase.Action();
					}
				}
				catch ( Exception )
				{					
				}
			}
		}

		public void Save()
		{
			eventDB.Clear();

			foreach ( EventBase evt in eventList )
			{
				eventDB.AddNewEvent( evt.GetType().ToString(), evt.GetConfigurationString( ) );
			}

			eventDB.Save();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -