private void SortImagesAndValidate( PresentationImageCollection orderedCollection, PresentationImageCollection nonOrderedCollection, bool reverse, IComparer <IPresentationImage> comparer, TraceDelegate trace) { if (reverse) { PresentationImageCollection reversedCollection = new PresentationImageCollection(); for (int i = orderedCollection.Count - 1; i >= 0; --i) { reversedCollection.Add(orderedCollection[i]); } orderedCollection = reversedCollection; } Randomize(orderedCollection, nonOrderedCollection); Debug.WriteLine("NON-ORDERED COLLECTION (PRE-SORT)\n"); trace(nonOrderedCollection); //Be certain it is currently *not* in order. Assert.IsFalse(VerifyOrdered(orderedCollection, nonOrderedCollection)); //Sort it. nonOrderedCollection.Sort(comparer); Debug.WriteLine("NON-ORDERED COLLECTION (POST-SORT)"); trace(nonOrderedCollection); //It should now be in the proper order. Assert.IsTrue(VerifyOrdered(orderedCollection, nonOrderedCollection)); }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpVideoStreamTelegram(TraceDelegate trace) : base(trace) { StreamFlags = new XAMUmpStreamFlags(); SequenceID = 0; StartLine = 0; LineCount = 0; }
public static XAMUmpMessageTelegram Create(int sequenceID, TraceDelegate trace) { System.Threading.Thread.Sleep(1000); List <byte> d = new List <byte>(); d.AddRange(BitConverter.GetBytes(0)); d.AddRange(BitConverter.GetBytes(sequenceID)); // set audio play remote return(new XAMUmpMessageTelegram(UmpMessageID.VideoStart, 0, d.ToArray(), trace)); }
/// <summary> /// Initializes a new instance of the <see cref="Plugin"/> class. /// </summary> /// <param name="childClassName">The <see cref=" cred="Type"/> of the derived class.</param> //internal Plugin(Type childClassName) //{ // this.ChildClassName = childClassName.ToString(); //} /// <summary> /// Executes the plug-in. /// </summary> /// <param name="serviceProvider">The service provider.</param> /// <remarks> /// For improved performance, Microsoft Dynamics CRM caches plug-in instances. /// The plug-in's Execute method should be written to be stateless as the constructor /// is not called for every invocation of the plug-in. Also, multiple system threads /// could execute the plug-in at the same time. All per invocation state information /// is stored in the context. This means that you should not use global variables in plug-ins. /// </remarks> public void Execute(IServiceProvider serviceProvider) { if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } // Construct the Local plug-in context. using (LocalPluginContext localcontext = new LocalPluginContext(serviceProvider)) { localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Entered {0}.Execute()", this.ChildClassName)); try { Trace = m => localcontext.Trace(m); // Iterate over all of the expected registered events to ensure that the plugin // has been invoked by an expected event // For any given plug-in event at an instance in time, we would expect at most 1 result to match. Action <LocalPluginContext> entityAction = (from a in this.RegisteredEvents where ( a.Item1 == localcontext.PluginExecutionContext.Stage && a.Item2 == localcontext.PluginExecutionContext.MessageName && (String.IsNullOrWhiteSpace(a.Item3) ? true : a.Item3 == localcontext.PluginExecutionContext.PrimaryEntityName) ) select a.Item4).FirstOrDefault(); if (entityAction != null) { localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "{0} is firing for Entity: {1}, Message: {2}", this.ChildClassName, localcontext.PluginExecutionContext.PrimaryEntityName, localcontext.PluginExecutionContext.MessageName)); entityAction.Invoke(localcontext); // now exit - if the derived plug-in has incorrectly registered overlapping event registrations, // guard against multiple executions. return; } } catch (FaultException <OrganizationServiceFault> e) { localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Exception: {0}", e.ToString())); // Handle the exception. throw; } finally { localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Exiting {0}.Execute()", this.ChildClassName)); } } }
public static List <Point> TraceCircle(Point center, int radius, TraceDelegate cb = null, object ctx = null) { List <Point> visited = new List <Point>(); if (radius <= 0) { return(visited); } int n = radius * 12; double dtheta = 2.0 * Math.PI / n; for (int t = 0; t < n; t++) { double theta = t * dtheta; int x = (int)Math.Round((radius * Math.Cos(theta))); int y = (int)Math.Round((radius * Math.Sin(theta))); Point point = new Point(center.X + x, center.Y + y); bool skip = false; foreach (Point p in visited) { if (p.X == point.X && p.Y == point.Y) { skip = true; break; } } if (skip) { continue; } if (cb != null) { int res = cb(point, ctx); if (res < 0) { break; } } visited.Add(point); } return(visited); }
public XAMUmpStream(XAMUmpDispatcher dispatcher, string ipAdr, int projectID, int firmwareVersion, int switchID, int designID, TraceDelegate trace) { this.dispatcher = dispatcher; this.trace = trace; this.projectID = projectID; this.firmwareVersion = firmwareVersion; this.switchID = switchID; this.designID = designID; destination = IPAddress.Parse(ipAdr); remoteAddressIdent = XAMUmUtils.GetSwitchIdentifier(projectID, switchID, designID); umpTelegram = new XAMUmpTelegram(packageID, projectID, firmwareVersion, switchID, designID, trace); }
/// <summary> /// Creates the specified dt. /// </summary> /// <param name="dt">The dt.</param> /// <param name="trace">The trace.</param> /// <returns></returns> public static XAMUmpMessageTelegram Create(DateTime dt, TraceDelegate trace) { trace("datetime!", TracePrio.MESSAGE); List <byte> sndDatetime = new List <byte>(); sndDatetime.Add((byte)dt.Second); sndDatetime.Add((byte)dt.Minute); sndDatetime.Add((byte)dt.Hour); sndDatetime.Add((byte)dt.DayOfWeek); sndDatetime.Add((byte)dt.Day); sndDatetime.Add((byte)dt.Month); sndDatetime.Add((byte)(dt.Year & 0xFF)); sndDatetime.Add((byte)((dt.Year >> 8) & 0xFF)); // set audio play remote return(new XAMUmpMessageTelegram(UmpMessageID.DateTime, 0, sndDatetime.ToArray(), trace)); }
public static List <Point> TracePath(Dungeon map, Point from, Point to, TraceDelegate cb = null, object ctx = null) { List <Point> points = FindPath(map, from, to); if (points == null) { return(new List <Point>()); } foreach (var point in points) { if (cb != null) { int res = cb(point, ctx); if (res < 0) { break; } } } return(points); }
public static List <Point> TraceFov(Point point, int radius, TraceDelegate cb = null, object ctx = null) { FovState state = new FovState(); List <Point> visited = new List <Point>(); state.visited = visited; state.originalCb = cb; state.originalContext = ctx; if (cb != null) { int res = cb(point, ctx); if (res < 0) { return(visited); } } visited.Add(point); int n = radius * 24; double dtheta = 2.0 * Math.PI / n; for (int t = 0; t < n; t++) { double theta = t * dtheta; int x = (int)Math.Round((radius * Math.Cos(theta))); int y = (int)Math.Round((radius * Math.Sin(theta))); Point end = new Point(point.X + x, point.Y + y); TraceLine(point, end, FovCallback, state); } return(visited); }
public static XAMUmpMessageTelegram Create(byte volume, Equalizer eq, XAMUmpPlayFlags playFlags, short incVolumeTime, short sequenceID, short bytesPerFrame, int delayBetweenFrames, string IpAdr, string AMSNetIp, TraceDelegate trace) { List <byte> d = new List <byte>(); if (volume > 100) { volume = 100; } d.Add((byte)volume); // Volume 100 = maximum d.Add((byte)eq); // equalizer 0 = normal byte[] pf = playFlags.GetBytes(); d.Add(pf[0]); // playfalsgs 2 00001 = ignore AMSNetID d.Add(pf[1]); // playfalsgs 0 d.AddRange(BitConverter.GetBytes(incVolumeTime)); // inc volume time d.AddRange(BitConverter.GetBytes(sequenceID)); d.AddRange(BitConverter.GetBytes(bytesPerFrame)); // bytes per frame 882 = default d.Add((byte)0); // reserved d.Add((byte)0); // reserved d.AddRange(BitConverter.GetBytes((Int32)delayBetweenFrames)); // delay between frames byte[] ip = IPAddress.Parse(IpAdr).GetAddressBytes(); d.Add(ip[0]); // ip address // 255.255.255.255 = exapt all d.Add(ip[1]); // ip address // 255.255.255.255 = exapt all d.Add(ip[2]); // ip address // 255.255.255.255 = exapt all d.Add(ip[3]); // ip address // 255.255.255.255 = exapt all byte[] ams = IPAddress.Parse(AMSNetIp).GetAddressBytes(); d.Add(ams[0]); // ip address // 255.255.255.255 = exapt all d.Add(ams[1]); // ip address // 255.255.255.255 = exapt all d.Add(ams[2]); // ip address // 255.255.255.255 = exapt all d.Add(ams[3]); // ip address // 255.255.255.255 = exapt all d.Add((byte)1); // AMSnetID d.Add((byte)1); // AMSnetID d.Add((byte)0); // reserved d.Add((byte)0); // reserved // set audio play remote return(new XAMUmpMessageTelegram(UmpMessageID.AudioPlayRemote, 0, d.ToArray(), trace)); }
public ControlVseSystem() { InitializeComponent(); //dockAnalyzers.Collapsed = true; ctlConsole.Dispatcher = new ConsoleDispatcher(); ctlConsole.Name = "ctlConsole"; ctlConsole.Dock = DockStyle.Fill; ctlConsole.SendTcpipCommand += new StringDelegate(ctlConsole_SendTcpipCommand); panelConsole.Controls.Add(ctlConsole); #region Set Summary Bindings see1.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary, "PID"); see2.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary, "Job_Name"); see3.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary, "SeeServer_Start_Time"); //see4 - SessionStartTime - update in OnAllIpDataRcvd time1.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Last_IPL_Time"); time2.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Last_CpuReset_Time"); time3.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "TCPIP_Start_Time"); tcp1.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "PID"); tcp2.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "Job_Name"); tcp3.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "IP_Address"); tcp4.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "Release"); tcp5.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "License"); tcp6.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "Sys_ID"); tcp7.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "Nof_TCPIP_PseudoTasks"); tcp8.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary, "Nof_TCPIP_Connections"); vse1.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Release"); vse2.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Power_Node"); vse3.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Power_Sys_ID"); vse4.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_Allocated_Partitions"); //vse5 - ActivePartitions - update in OnPollDataRcvd vse6.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_Cpus"); vse7.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_Active_Cpus"); vse8.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_Quiesced_Cpus"); vse9.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_TCPIP_Stacks"); vse10.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Nof_Active_Tasks"); cpu1.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Cpu_ID"); #endregion infoUpdated.DataBindings.Add("Text", _vseDataSet.VSE_Summary, "Poll_Time"); TraceStatusChanged += new TraceDelegate(OnTraceStatusChanged); PollDataRcvd += new DateTimeDelegate(UpdatePollMonitors); }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpMessageTelegram(UmpMessageID messageID, int actorID, byte[] value, TraceDelegate trace) : base(trace) { this.MessageID = messageID; this.ActorID = actorID; this.Value = value; }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpMessageTelegram(TraceDelegate trace) : base(trace) { }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpTelegram(int packageID, int projectID, int firmwareVersion, int switchId, int designId, TraceDelegate trace) : base(trace) { FrameID = 0x8601; FrameVersion = 0x0220; PackageID = packageID; ProjectID = projectID; FirmwareVersion = firmwareVersion; SwitchId = switchId; DesignId = designId; }
public void registerTraceHandler(TraceDelegate handler) { onTraceEvent = handler; }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpVideoStreamTelegram(XAMUmpStreamFlags streamFlags, int sequenceID, short startLine, short lineCount, byte[] videoData, TraceDelegate trace) : base(trace) { StreamFlags = streamFlags; SequenceID = sequenceID; StartLine = startLine; LineCount = lineCount; VideoData = videoData; }
public static XAMUmpMessageTelegram Create(byte volume, Equalizer eq, short sequenceID, string AMSNetID, TraceDelegate trace) { return(Create(volume, eq, new XAMUmpPlayFlags() { IgnoreAMSNetID = true }, 0, sequenceID, 882, 20000, "255.255.255.255", AMSNetID, trace)); }
public override void Trace(Object Component, String Message) { String MessageToAdd = String.Format("[{0}\t] {1} ",Component.GetType().Name, Message); TraceDelegate dlgt = new TraceDelegate(Trace); AsyncCallback ac = new AsyncCallback(FireEventCallback); dlgt.BeginInvoke(MessageToAdd, ac, dlgt); }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpDispatcher(TraceDelegate trace) { this.Trace = trace; }
public static XAMUmpMessageTelegram Create(TraceDelegate trace) { return(new XAMUmpMessageTelegram(UmpMessageID.VideoState, 0, new byte[0], trace)); }
public static void AddTraceLogger(TraceDelegate traceAction) { _traceDelegates.Add(traceAction); }
/// <summary> /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class. /// </summary> /// <param name="trace">The trace.</param> public XAMUmpTelegram(TraceDelegate trace) : base(trace) { FrameID = 0x8601; FrameVersion = 0x0201; }
// https://rosettacode.org/wiki/Bitmap/Bresenham%27s_line_algorithm#C.2B.2B public static List <Point> TraceLine(Point start, Point end, TraceDelegate cb = null, object ctx = null) { List <Point> visited = new List <Point>(); int x0 = start.X; int x1 = end.X; int y0 = start.Y; int y1 = end.Y; if (x0 == x1 && y0 == y1) { Point p0 = new Point(x0, y0); visited.Add(p0); if (cb != null) { cb(p0, ctx); } return(visited); } int dx = Math.Abs(x1 - x0), sx = x0 < x1 ? 1 : -1; int dy = Math.Abs(y1 - y0), sy = y0 < y1 ? 1 : -1; int err = (dx > dy ? dx : -dy) / 2, e2; for (;;) { Point point = new Point(x0, y0); bool skip = false; foreach (Point p in visited) { if (p.X == point.X && p.Y == point.Y) { skip = true; break; } } if (skip) { continue; } if (cb != null) { int res = cb(point, ctx); if (res < 0) { break; } } if (x0 == x1 && y0 == y1) { break; } e2 = err; if (e2 > -dx) { err -= dy; x0 += sx; } if (e2 < dy) { err += dx; y0 += sy; } visited.Add(point); } return(visited); }