Beispiel #1
0
        public void CANListenTest()
        {
            STLinkBridgeWrapper.STLinkBridgeWrapper wrapper = new STLinkBridgeWrapper.STLinkBridgeWrapper();
            var devices = new List <DeviceInfo>();
            STLinkIf_StatusT linkStatus = wrapper.EnumerateDevices(out devices);


            DeviceInfo selectedDevice = devices.FirstOrDefault();

            if (selectedDevice == null)
            {
                throw new Exception("No STLink device found");
            }

            Brg_StatusT bridgeStatus = wrapper.OpenBridge(selectedDevice);

            wrapper.CanMessageReceived += Wrapper_CanMessageReceived;
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);
            wrapper.CanInit(1000000, false);
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);
            wrapper.StartTransmission(null);
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);

            System.Threading.Thread.Sleep(100);

            var ReceivedMessages = wrapper.CanRead();

            wrapper.StopTransmission();

            Debug.Assert(ReceivedMessages.Count < 0);
        }
        public CanBridgeControl() : base()
        {
            InitializeComponent();
            StLinkBridge       = new STLinkBridgeWrapper.STLinkBridgeWrapper();
            cbSpeed.DataSource = new List <uint> {
                1000, 750, 500, 250, 125, 100
            };
            cbSpeed.SelectedIndex = 0;
            StLinkBridge.CanConnectionStatusChanged += StLinkBridge_CanConnectionStatusChanged;
            dgv_stLinks.SelectionChanged            += dgv_stLinks_SelectionChanged;
            StLinkBridge.CanMessageReceived         += StLinkBridge_CanMessageReceived;


            // Populate datagrid
            btnEnumerate_Click(this, null);
        }
Beispiel #3
0
        public void CANLoopBackTest()
        {
            STLinkBridgeWrapper.STLinkBridgeWrapper wrapper = new STLinkBridgeWrapper.STLinkBridgeWrapper();
            var devices = new List <DeviceInfo>();
            STLinkIf_StatusT linkStatus = wrapper.EnumerateDevices(out devices);


            DeviceInfo selectedDevice = devices.FirstOrDefault();

            if (selectedDevice == null)
            {
                throw new Exception("No STLink device found");
            }

            Brg_StatusT bridgeStatus = wrapper.OpenBridge(selectedDevice);

            wrapper.CanMessageReceived += Wrapper_CanMessageReceived;
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);
            wrapper.CanInit(125000, true);
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);
            wrapper.StartTransmission(null);
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);

            var canMessage = GenerateSimpleCanMessageType();
            var signal1    = canMessage.Signals["TestSignal1"];
            var signal2    = canMessage.Signals["TestSignal2"];
            var signal3    = canMessage.Signals["TestSignal3"];

            signal1.CalculateBitMask();
            signal2.CalculateBitMask();
            signal3.CalculateBitMask();

            //wrapper.canMessageTypes = new SortedList<uint, CanMessageType>();
            //wrapper.canMessageTypes.Add((uint)canMessage.ID, canMessage);

            double value1 = -1.3;
            double value2 = 1.4;
            double value3 = 5;
            //var message = canMessage.GenerateCanMessageTx((signal1, value1), (signal2, value2), (signal3, value3));
            var message = new CanMessage();


            wrapper.WriteMessage(message);
            Assert.IsTrue(wrapper.GetBridgeStatus() == Brg_StatusT.BRG_NO_ERR);

            System.Threading.Thread.Sleep(1000);

            var ReceivedMessages = wrapper.CanRead();
            var listOfMessages   = new SortedList <uint, CanMessageType>();

            listOfMessages.Add((uint)canMessage.Id, canMessage);
            //var dataPoints = CanDB.CanDbcParser.ParseReceivedCanMessagesRx(ReceivedMessages, listOfMessages);

            //Assert.AreEqual(3, dataPoints.Count);

            //Assert.AreEqual(value1, dataPoints[0].data);
            //Assert.AreEqual(value2, dataPoints[1].data);
            //Assert.AreEqual(value3, dataPoints[2].data);


            wrapper.StopTransmission();
        }