示例#1
0
        private void cLRCapabilitiesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                MFDevice device = ConnectToSelectedDevice();

                if (device != null)
                {
                    _DBG.Engine engine = device.DbgEngine;

                    engine.TryToConnect(0, 100, true, Microsoft.SPOT.Debugger.ConnectionSource.Unknown);

                    Microsoft.SPOT.CLRCapabilities caps = engine.Capabilities;

                    if (caps == null || caps.IsUnknown)
                    {
                        DumpToOutput(Properties.Resources.ErrorNotSupported);
                        DisconnectFromSelectedDevice();
                        return;
                    }

                    Type t = typeof(Microsoft.SPOT.CLRCapabilities);
                    foreach (PropertyInfo pi in t.GetProperties())
                    {
                        object o = pi.GetValue(caps, null);

                        try
                        {
                            if (o is Microsoft.SPOT.CLRCapabilities.LCDCapabilities ||
                                o is Microsoft.SPOT.CLRCapabilities.SoftwareVersionProperties ||
                                o is Microsoft.SPOT.CLRCapabilities.HalSystemInfoProperties ||
                                o is Microsoft.SPOT.CLRCapabilities.ClrInfoProperties ||
                                o is Microsoft.SPOT.CLRCapabilities.SolutionInfoProperties
                                )
                            {
                                foreach (FieldInfo fi in pi.PropertyType.GetFields())
                                {
                                    DumpToOutput(string.Format("{0,-40}{1}", pi.Name + "." + fi.Name + ":", fi.GetValue(o)));
                                }
                            }
                            else
                            {
                                DumpToOutput(string.Format("{0,-40}{1}", pi.Name + ":", o));
                            }
                        }
                        catch
                        {
                            DumpToOutput(Properties.Resources.ErrorNotSupported);
                        }
                    }
                    DisconnectFromSelectedDevice();
                }
            }
            catch
            {
                DumpToOutput(Properties.Resources.ErrorNotSupported);
            }
        }
        private void buttonCLRCap_Click(object sender, EventArgs e)
        {
            bool bWasStarted = EnsureDebuggerConnection();

            Microsoft.SPOT.CLRCapabilities CLRCapabilities = m_eng.Capabilities;
            NewText("CLR Capabilities\r\n");
            if (CLRCapabilities.FloatingPoint)
            {
                NewText("Floating Point \r\n");
            }

            if (CLRCapabilities.SourceLevelDebugging)
            {
                NewText("Source Level Debugging \r\n");
            }

            if (CLRCapabilities.AppDomains)
            {
                NewText("Application Domain \r\n");
            }

            if (CLRCapabilities.ExceptionFilters)
            {
                NewText("Exception filter\r\n");
            }

            if (CLRCapabilities.IncrementalDeployment)
            {
                NewText("Incremental Deployment \r\n");
            }

            if (CLRCapabilities.SoftReboot)
            {
                NewText("Soft Reboot \r\n");
            }

            NewText("Done\r\n");
            if (!bWasStarted)
            {
                m_eng.Stop();
                m_eng = null;
            }
        }