示例#1
0
        /// <summary>
        /// Creates and Returns the Command List
        /// </summary>
        /// <param name="inputCmds"></param>
        /// <returns>The Command List</returns>
        private List <String> CreateCommandList(List <List <String> > inputCmds)
        {
            List <String> cmds = new List <string>();

            ProfileParamsTb.AppendText("\r\n");

            //for each command array
            foreach (List <String> cmd in inputCmds)
            {
                String cmdStr = "";

                //for each command array piece
                foreach (String cmdPiece in cmd)
                {
                    //add piece to command string
                    cmdStr += cmdPiece;
                    ProfileParamsTb.AppendText(cmdPiece + " ");
                }

                //Add command string to List
                ProfileParamsTb.AppendText("\r\n");
                cmds.Add(cmdStr);
            }

            //return list
            return(cmds);
        }
示例#2
0
        /// <summary>
        /// Sends the Command List over the CAN Bus
        /// </summary>
        /// <param name="cmds"></param>
        /// <param name="numPackets"></param>
        private void SendCommandList(List <String> cmds, byte numPackets)
        {
            #region ValCheck
            if (cmds == null || numPackets == 0)
            {
                return;
            }
            #endregion

            #region setup

            TCLightMsg MsgToSend = new TCLightMsg();
            MsgToSend.ID      = 0x013EE8E0 | 0x00000001;
            MsgToSend.Len     = 1;
            MsgToSend.MsgType = MsgTypes.MSGTYPE_EXTENDED;
            MsgToSend.Data[0] = numPackets;

            TCLightTimestamp q = new TCLightTimestamp();
            q.millis = 1000;
            console.AddOutsideMessage(MsgToSend, q);

            PCANLight.Write(ActiveHardware, MsgToSend);


            #endregion

            #region move

            MsgToSend.ID      = 0x013EE0E0 | 0x00000001;
            MsgToSend.Len     = 8;
            MsgToSend.MsgType = MsgTypes.MSGTYPE_EXTENDED;
            byte count = 0;
            foreach (String cmd in cmds)
            {
                String[] cmd2 = cmd.Split('~');

                for (int i = 0; i < MsgToSend.Len; i++)
                {
                    #region Data
                    switch (i)
                    {
                    case 0:
                        ProfileParamsTb.AppendText(cmd + "\r\n");
                        MsgToSend.Data[0] = count;
                        count++;
                        break;

                    case 1:
                        MsgToSend.Data[1] = numPackets;
                        break;

                    case 2:
                        MsgToSend.Data[2] = BitConverter.GetBytes(Int16.Parse(cmd2[0]))[1];
                        break;

                    case 3:
                        MsgToSend.Data[3] = BitConverter.GetBytes(Int16.Parse(cmd2[0]))[0];
                        break;

                    case 4:
                        MsgToSend.Data[4] = BitConverter.GetBytes(UInt16.Parse(cmd2[1]))[1];
                        break;

                    case 5:
                        MsgToSend.Data[5] = BitConverter.GetBytes(UInt16.Parse(cmd2[1]))[0];
                        break;

                    case 6:

                        MsgToSend.Data[6] = BitConverter.GetBytes(UInt16.Parse(cmd2[2]))[1];
                        break;

                    case 7:
                        MsgToSend.Data[7] = BitConverter.GetBytes(UInt16.Parse(cmd2[2]))[0];
                        break;
                    }
                    #endregion
                }
                console.AddOutsideMessage(MsgToSend, q);
                PCANLight.Write(ActiveHardware, MsgToSend);
            }
            #endregion

            #region Delete
            //prevents sending repeats, consider disabling if you want such a feature
            cmds = null;

            numPackets = 0;
            #endregion
        }