int _count; // Counter for serial comm /// <summary> /// Constructor /// </summary> public SerialComm(string portName, SerialCallback callBack) { const uint bitRate = 115200; _portDef = PortDefinition.CreateInstanceForSerial(portName, portName, bitRate); _callBack = callBack; }
public void InitPresenceCheck(PortDefinition port) { switch (port.id) { case 1: { resetPin = new InputPort(IO.Port1.Pin6, false, Port.ResistorMode.PullDown); GPIO = new InputPort(IO.Port1.Pin3, false, Port.ResistorMode.PullDown); modulePresent = resetPin.Read(); break; } case 4: { resetPin = new InputPort(IO.Port4.Pin6, false, Port.ResistorMode.PullDown); GPIO = new InputPort(IO.Port4.Pin3, false, Port.ResistorMode.PullDown); modulePresent = resetPin.Read(); break; } case 6: { resetPin = new InputPort(IO.Port6.Pin6, false, Port.ResistorMode.PullDown); GPIO = new InputPort(IO.Port6.Pin3, false, Port.ResistorMode.PullDown); modulePresent = resetPin.Read(); break; } default: break; } }
private static void updateTargetsList(object state) { lock (locker) { var devices = PortDefinition.Enumerate(PortFilter.Usb); var targetsToKeep = new List <MicroFrameworkExecutionTarget>(); bool changed = false; foreach (var device in devices) { bool targetExist = false; foreach (var target in targets) { if (target.PortDefinition.Port == (device as PortDefinition).Port) { targetsToKeep.Add(target); targetExist = true; break; } } if (!targetExist) { changed = true; var newTarget = new MicroFrameworkExecutionTarget(device as PortDefinition); targets.Add(newTarget); targetsToKeep.Add(newTarget); } } changed |= targets.RemoveAll((target) => !targetsToKeep.Contains(target)) > 0; if (changed && deviceListChanged != null) { deviceListChanged(null); } } }
/** ctor */ public DisplayModule(PortDefinition port, OrientationType orientation) { if (CTRE.Util.Contains(port.types, kModulePortType)) { status = StatusCodes.OK; _port = port; Port8Definition portDef = (Port8Definition)port; if (portDef.Pin3 != Cpu.Pin.GPIO_NONE) { _outReset = new OutputPort(portDef.Pin3, false); } if (portDef.Pin4 != Cpu.Pin.GPIO_NONE) { _outBackLght = new OutputPort(portDef.Pin4, true); } _outRs = new OutputPort(portDef.Pin5, false); /* alloc the working arrays */ _cache_1B = new byte[1]; _cache_2W = new ushort[2]; _cache_manyBs = new byte[1024]; _cache_manyWs = new ushort[1024]; SPI.Configuration spiConfiguration = new SPI.Configuration(portDef.Pin6, false, 0, 0, false, true, 12000, SPI.SPI_module.SPI4); _spi = new Microsoft.SPOT.Hardware.SPI(spiConfiguration); /* reset pulse if pin is available */ if (_outReset != null) { _outReset.Write(false); Thread.Sleep(150); _outReset.Write(true); } /* setup registers */ ConfigureDisplay(); /* fixup orientation */ _orientation = orientation; ApplytOrientation(); /* empty screen */ ClearScreen(); /* start rendering thread */ var th = new Thread(RenderThread); th.Priority = ThreadPriority.Lowest; th.Start(); } else { status = StatusCodes.PORT_MODULE_TYPE_MISMATCH; Reporting.SetError(status); } }
public DriverModule(PortDefinition port) { if (CTRE.Util.Contains(port.types, kModulePortType)) { status = StatusCodes.OK; this.port = port; InitializePort((IPortGpio7)this.port); } else { status = StatusCodes.PORT_MODULE_TYPE_MISMATCH; Reporting.SetError(status); } }
public DriverModule(PortDefinition port) { if (CTRE.Phoenix.Util.Contains(port.types, kModulePortType)) { _lastError.SetLastError(ErrorCode.OK); this.port = port; InitializePort((IPortGpio7)this.port); } else { _lastError.SetLastError(ErrorCode.PORT_MODULE_TYPE_MISMATCH); CTRE.Phoenix.Reporting.SetError(_lastError.GetLastError()); } }
public DriverModule(PortDefinition port) { if (Contains(port.types, kModulePortType)) { status = StatusCodes.OK; this.port = port; InitializePort((IPortGpio7)this.port); } else { status = StatusCodes.PORT_MODULE_TYPE_MISMATCH; Reporting.SetError(status); } }
public DriverStation(PortDefinition wifiPort) { if (wifiPort is IPortUart) { IPortUart p = (IPortUart)wifiPort; _uart = new System.IO.Ports.SerialPort(p.UART, 115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); _restart = new Microsoft.SPOT.Hardware.OutputPort(p.Pin6, true); if (wifiPort is Port1Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port1Definition)wifiPort).Pin3, true); } if (wifiPort is Port4Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port4Definition)wifiPort).Pin3, true); } if (wifiPort is Port6Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port6Definition)wifiPort).Pin3, true); } } else { throw new ArgumentException("Port is not UART compatible"); } _uart.Open(); _uart.Flush(); _enabled = false; _connected = false; CTRE.Controller.GameControllerValues _g = new Controller.GameControllerValues(); CTRE.Controller.GameControllerValues _h = new Controller.GameControllerValues(); CTRE.Controller.GameControllerValues _j = new Controller.GameControllerValues(); CTRE.Controller.GameControllerValues _k = new Controller.GameControllerValues(); CTRE.Controller.GameControllerValues _l = new Controller.GameControllerValues(); CTRE.Controller.GameControllerValues _m = new Controller.GameControllerValues(); _joysticks = new CTRE.Controller.GameControllerValues[6] { _g, _h, _j, _k, _l, _m }; _controllers = new CTRE.Controller.GameController[6]; _data = new byte[255]; _timeout.Start(); _sendingMessage = new byte[1] { 0x00 }; _enableTimeout.Start(); _initialization.Start(); }
public DriverStation(PortDefinition wifiPort) { if (wifiPort is IPortUart) { IPortUart p = (IPortUart)wifiPort; _uart = new System.IO.Ports.SerialPort(p.UART, 115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); _restart = new Microsoft.SPOT.Hardware.OutputPort(p.Pin6, true); if (wifiPort is Port1Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port1Definition)wifiPort).Pin3, true); } if (wifiPort is Port4Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port4Definition)wifiPort).Pin3, true); } if (wifiPort is Port6Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port6Definition)wifiPort).Pin3, true); } } else { status = ErrorCode.PORT_MODULE_TYPE_MISMATCH; Reporting.SetError(status); } _uart.Open(); _uart.Flush(); _enabled = false; _connected = false; CTRE.Phoenix.Controller.GameControllerValues _g = new Controller.GameControllerValues(); CTRE.Phoenix.Controller.GameControllerValues _h = new Controller.GameControllerValues(); CTRE.Phoenix.Controller.GameControllerValues _j = new Controller.GameControllerValues(); CTRE.Phoenix.Controller.GameControllerValues _k = new Controller.GameControllerValues(); CTRE.Phoenix.Controller.GameControllerValues _l = new Controller.GameControllerValues(); CTRE.Phoenix.Controller.GameControllerValues _m = new Controller.GameControllerValues(); _joysticks = new CTRE.Phoenix.Controller.GameControllerValues[6] { _g, _h, _j, _k, _l, _m }; _controllers = new CTRE.Phoenix.Controller.GameController[6]; _data = new byte[255]; _sendingMessage = new byte[1] { 0x00 }; buffer = new Containers.ByteRingBuffer(255); }
public ESP12F(PortDefinition port) { if (Contains(port.types, kModulePortType)) { status = StatusCodes.OK; this.port = port; processState = READY; headerState = STAGE1; linkIDState = STAGE1; processedSize = 0; dataCount = 0; InitUart((IPortUart)(this.port)); InitPresenceCheck(this.port); } else { status = StatusCodes.PORT_MODULE_TYPE_MISMATCH; //Reporting.SetError(status); } }
public ESPModule(PortDefinition wifiPort) { if (wifiPort is IPortUart) { IPortUart p = (IPortUart)wifiPort; _uart = new System.IO.Ports.SerialPort(p.UART, 115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); _restart = new Microsoft.SPOT.Hardware.OutputPort(p.Pin6, true); //Need to define the flash pin to ensure it's held true if (wifiPort is Port1Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port1Definition)wifiPort).Pin3, true); } if (wifiPort is Port4Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port4Definition)wifiPort).Pin3, true); } if (wifiPort is Port6Definition) { _flashPin = new Microsoft.SPOT.Hardware.OutputPort(((Port6Definition)wifiPort).Pin3, true); } } else { throw new ArgumentException("Port is not UART compatible"); } _uart.Open(); _uart.Flush(); _connected = false; _data = new byte[255]; _timeout.Start(); _sendingMessage = new byte[1] { 0x00 }; _enableTimeout.Start(); _initialization.Start(); }
private void button2_Click(object sender, EventArgs e) { if (m_connected) { button2.Text = "Connect"; m_readTh.Abort(); m_readTh.Join(); m_readTh = null; m_gas.Close(); m_gas.Dispose(); m_gas = null; } else { PortDefinition pd = comboBox1.SelectedItem as PortDefinition; m_gas = pd.Open(); m_readTh = new Thread(new ThreadStart(ReadThread)); m_readTh.Start(); button2.Text = "Disconnect"; } m_connected = !m_connected; }
public IOPorts(IARMHost ihost) { mIhost = ihost; //request to be notified when our area of the memory map is written or read mIhost.RequestMemoryBlock(mLowerAddress, 0xffffff80, onMemoryAccessRead, onMemoryAccessWrite); mPortDefinitions[0] = new PortDefinition(PortNumbers.PCONA, 10); mPortDefinitions[1] = new PortDefinition(PortNumbers.PDATA, 10); mPortDefinitions[2] = new PortDefinition(PortNumbers.PCONB, 11); mPortDefinitions[3] = new PortDefinition(PortNumbers.PDATB, 11); mPortDefinitions[4] = new PortDefinition(PortNumbers.PCONC, 32); mPortDefinitions[5] = new PortDefinition(PortNumbers.PDATC, 16); mPortDefinitions[6] = new PortDefinition(PortNumbers.PUPC, 16); mPortDefinitions[7] = new PortDefinition(PortNumbers.PCOND, 16); mPortDefinitions[8] = new PortDefinition(PortNumbers.PDATD, 8); mPortDefinitions[9] = new PortDefinition(PortNumbers.PUPD, 8); mPortDefinitions[10] = new PortDefinition(PortNumbers.PCONE, 18); mPortDefinitions[11] = new PortDefinition(PortNumbers.PDATE, 9); mPortDefinitions[12] = new PortDefinition(PortNumbers.PUPE, 8); mPortDefinitions[13] = new PortDefinition(PortNumbers.PCONF, 22); mPortDefinitions[14] = new PortDefinition(PortNumbers.PDATF, 9); mPortDefinitions[15] = new PortDefinition(PortNumbers.PUPF, 9); mPortDefinitions[16] = new PortDefinition(PortNumbers.PCONG, 16); mPortDefinitions[17] = new PortDefinition(PortNumbers.PDATG, 8); mPortDefinitions[18] = new PortDefinition(PortNumbers.PUPG, 8); mPortDefinitions[19] = new PortDefinition(PortNumbers.SPUCR, 3); mPortDefinitions[20] = new PortDefinition(PortNumbers.EXTINT, 31); mPortDefinitions[21] = new PortDefinition(PortNumbers.EXTPND, 4, true); this.Restart(); }//ctor
internal void StartProfiler(string device, string logFile, string transport, string exePath, string buildPath, ArrayList referenceList, bool isDevEnvironment, string assemblyName) { try { PortDefinition port = Utils.GetPort(device, transport, exePath); m_engine = new Engine(port); m_session = new ProfilerSession(m_engine); #if DEBUG m_exporter = new Exporter_OffProf(m_session, logFile); #endif lock (m_engine) { m_engine.StopDebuggerOnConnect = true; m_engine.Start(); bool connected = false; connected = m_engine.TryToConnect(20, 500, true, ConnectionSource.TinyCLR); if (connected) { if (m_engine.Capabilities.Profiling == false) { throw new ApplicationException("This device is not running a version of TinyCLR that supports profiling."); } // Deploy the test files to the device. Utils.DeployToDevice(buildPath, referenceList, m_engine, transport, isDevEnvironment, assemblyName); // Move IsDeviceInInitializeState(), IsDeviceInExitedState(), // GetDeviceState(),EnsureProcessIsInInitializedState() to Debugger.dll? m_engine.RebootDevice(Engine.RebootOption.RebootClrWaitForDebugger); if (!m_engine.TryToConnect(100, 500)) { throw new ApplicationException("Connection Failed"); } m_engine.ThrowOnCommunicationFailure = true; m_session.EnableProfiling(); m_session.SetProfilingOptions(true, false); m_engine.OnCommand += new CommandEventHandler(OnWPCommand); m_engine.ResumeExecution(); } else { throw new ApplicationException("Connection failed"); } } } catch (Exception ex) { SoftDisconnectDone(null, null); throw ex; } }
private void ConnectToDevice(string buildPath, string exePath, ArrayList referenceList) { TestSystem.IncludesDeviceTest = true; PortDefinition port = Utils.GetPort(m_device, m_transport, exePath); try { for (int retry = 0; retry < 3; retry++) { m_engine = new Microsoft.SPOT.Debugger.Engine(port); m_engine.StopDebuggerOnConnect = true; m_engine.Start(); bool connected = false; connected = m_engine.TryToConnect(200, 500, true, ConnectionSource.TinyCLR); if (connected) { m_engine.PauseExecution(); if (!string.Equals(m_transport.ToLower(), "emulator")) { // Deploy the test files to the device. Utils.DeployToDevice(buildPath, referenceList, m_engine, m_transport, m_isDevEnvironment, m_assemblyName); // Connect to the device and execute the deployed test. m_engine.RebootDevice(Microsoft.SPOT.Debugger.Engine.RebootOption.RebootClrWaitForDebugger); // give the device some time to restart (especially for tcp/ip) Thread.Sleep(500); if (m_engine.PortDefinition is PortDefinition_Tcp) { Thread.Sleep(1000); } connected = false; connected = m_engine.TryToConnect(200, 500, true, ConnectionSource.TinyCLR); } if (!connected) { DetachFromEngine(); throw new ApplicationException("Reboot Failed"); } AttachToProcess(); m_engine.ThrowOnCommunicationFailure = true; m_engine.OnMessage += new MessageEventHandler(OnMessage); m_engine.OnCommand += new CommandEventHandler(OnCommand); m_engine.OnNoise += new NoiseEventHandler(OnNoise); Console.WriteLine("\tExecuting the device test.."); m_initialTime = DateTime.Now; m_engine.ResumeExecution(); m_deviceDone.WaitOne(); break; } else { DetachFromEngine(); //throw new ApplicationException("Connection failed"); } } } catch (Exception ex) { DetachFromEngine(); throw new ApplicationException("Connection failed: " + ex.ToString()); } }
private void Form1_Load(object sender, EventArgs e) { comboBox1.DataSource = PortDefinition.Enumerate(PortFilter.Serial); comboBox1.ValueMember = "DisplayName"; }
public void SetPortDefinition(PortDefinition PortDefinition, bool IsInput) { DisplayNameText.text = PortDefinition.DisplayName; DisplayNameText.alignment = IsInput ? TextAnchor.MiddleLeft : TextAnchor.MiddleRight; Connector.localPosition = IsInput ? new Vector3(0.5f, 0, 0) : new Vector3(-0.5f, 0, 0); }
public void UpdateList() { ArrayList list = PortDefinition.Enumerate(m_pf); #region Code that should probably be in PortDefinition.Enumerate { bool enumTcpIpPorts = false; foreach (PortFilter pf in m_pf) { if (pf == PortFilter.TcpIp) { enumTcpIpPorts = true; break; } } if (enumTcpIpPorts) { list.AddRange(EnumerateTcpIpPorts()); } } #endregion #region Code that could go in PortDefinition.Enumerate if we add a LauncableEmulator port definition. (Or move PersistableEmulator into a non-VS class? { bool listLaunchableEmulators = false; foreach (PortFilter pf in m_pf) { if (pf == PortFilter.Emulator) { listLaunchableEmulators = true; break; } } if (listLaunchableEmulators == true) { PlatformInfo pi = new PlatformInfo(null); PlatformInfo.Emulator[] emus = pi.Emulators; foreach (PlatformInfo.Emulator emu in emus) { list.Add(new PortDefinition_Emulator("Launch '" + emu.name + "'", emu.persistableName, 0)); } } } #endregion object si = SelectedItem; base.DataSource = null; if (list.Count > 0) { base.DataSource = list; if (list[0] is PortDefinition) { base.DisplayMember = "DisplayName"; } if (si != null) { SelectedItem = si; } else { base.SelectedIndex = 0; } } else { base.Text = "<None>"; } base.Update(); }
internal static PortDefinition GetPort(string device, string transport, string exePath) { PortFilter[] args = { }; switch (transport.ToLower()) { case "emulator": args = new PortFilter[] { PortFilter.Emulator }; device = "emulator"; PortDefinition pd = PortDefinition.CreateInstanceForEmulator("Launch 'Microsoft Emulator'", "Microsoft", 0); PlatformInfo pi = new PlatformInfo(null); PlatformInfo.Emulator emu = pi.FindEmulator(pd.Port); if (emu != null) { string onboardFlash = Path.Combine(Path.GetDirectoryName(emu.application), "OnBoardFlash.dat"); if (File.Exists(onboardFlash)) { try { File.Delete(onboardFlash); } catch { } } } PortDefinition_Emulator emuport = pd as PortDefinition_Emulator; Console.WriteLine("\tLaunching Emulator.."); Process emuProc = EmulatorLauncher.LaunchEmulator( emuport, true, exePath); break; case "serial": args = new PortFilter[] { PortFilter.Serial }; break; case "tcpip": args = new PortFilter[] { PortFilter.TcpIp }; break; case "usb": args = new PortFilter[] { PortFilter.Usb }; break; } ArrayList list = new ArrayList(); int nRetries = 20; while (list.Count == 0 && nRetries-- > 0) { list = PortDefinition.Enumerate(args); if (list.Count > 0) { break; } System.Threading.Thread.Sleep(500); } PortDefinition port = null; foreach (object prt in list) { port = (PortDefinition)prt; if (port.DisplayName.ToLower().Contains(device.ToLower())) { break; } else { port = null; } } if (null != port) { return(port); } else { throw new ApplicationException( "Could not find the specified device for the harness to connect to."); } }
public MicroFrameworkExecutionTarget(PortDefinition portDefinition) { this.PortDefinition = portDefinition; }