コード例 #1
0
        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;
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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");
        }