private void btnEnumerate_Click(object sender, EventArgs e) { List <DeviceInfo> devices = new List <DeviceInfo>(); STLinkIf_StatusT status = StLinkBridge.EnumerateDevices(out devices); dgv_stLinks.DataSource = devices; }
private void btn_OpenBridge_Click(object sender, EventArgs e) { if (!StLinkBridge.CanConnectionRunning) { ReceivedDataSummary.Clear(); // Open bridge if (dgv_stLinks.CurrentRow == null) { return; } var deviceInfo = dgv_stLinks.CurrentRow.DataBoundItem as DeviceInfo; if (deviceInfo == null) { return; } var baudrate = (uint)cbSpeed.SelectedItem * 1000; var polltime = nudPollTime.Value; InitializeCAN(deviceInfo, baudrate, (double)polltime); } else { // Close bridge StLinkBridge.CloseConnection(); } }
private void InitializeCAN(DeviceInfo selectedDevice, uint baudrate, double polltime) { if (selectedDevice == null) { throw new Exception("No STLink device found"); } Brg_StatusT bridgeStatus = StLinkBridge.OpenBridge(selectedDevice); Debug.Assert(StLinkBridge.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR); try { StLinkBridge.CanInit(baudrate, false); Debug.Assert(StLinkBridge.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR); } catch (Exception e) { MessageBox.Show($"{e.Message}\n\n{e.StackTrace}", e.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // TODO: Handle the other errors in a similar manner StLinkBridge.StartTransmission(polltime); Debug.Assert(StLinkBridge.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR); }
public void PerformPeriodicUiUpdate() { // Perform thread safe UI update //SetControlPropertyThreadSafe(dgv_stLinks, "DataSource", ReceivedDataSummary.Values.ToList()); var table = CanActivityDisplayDatas2StringTable(ReceivedDataSummary.Values); SetControlPropertyThreadSafe(richTextBox1, "Text", table); //dgvActivityIndicator.DataSource = ReceivedDataSummary.Values.ToList(); SetControlPropertyThreadSafe(nudPollTime, "Value", (decimal)StLinkBridge.CurrentPollInterval); //nudPollTime.Value = (decimal)StLinkBridge.CurrentPollInterval; float voltage = 0; StLinkBridge.GetTargetVoltage(out voltage); SetControlPropertyThreadSafe(textBoxTargetVoltage, "Text", voltage.ToString("0.00") + " V"); }