我是靠谱客的博主 威武音响,最近开发中收集的这篇文章主要介绍CANopen数据抓包( C# ),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据抓包需要一个模型。

循环抓取有用的数据包

 

 //      《八卦炉》
        // 由八条存储单元:
        //                 (坤,艮,坎,巽,震,离,兑,乾)// 二叉树,二进制
        //             对应( 0,  1,  2,  3,  4,  5,  6,  7)// 八进制
        //
        // 阳:生产记录(坤0》艮1》坎2》巽3) //循环生产数据
        // 阴:消费记录(乾7》兑6》离5》震4) //循环销毁信息
        //
        // 法器:令牌,拂尘,镇坛木,桃木剑,令旗,葫芦,三清铃,法印,天蓬尺   // 八大法器

        //       令牌:启停命令(bool)
        //       拂尘:驱赶(转盘加1格)(同步信号:SCK)// 生产记录+1,消费记录-1
        //       镇坛木:暂停(bool)
        //       桃木剑:解析生产记录
        //       令旗:子线程(子任务队列)
        //       葫芦:公共资源表(数据类型public)
        //       三清铃:事件(delegate)
        //       法印:等待子线程,任务完成(bool)
        //       天蓬尺:日志信息(日志记录 List<String>)

        // 金童:(委托呼叫)生产记录+1,拂尘(转盘+1刷新数据)
        // 玉女: get桃木剑解析结果,分发子任务,添加日志信息
        // 
        // 
        // 

 

       public void set金童(string data)//  "25s8362:08000005814B002000E8030000"
        {
            lock (this)
            {
                if (!令牌)
                {
                    return;
                }
                if (!镇坛木)
                {
                    return;
                }
                //if (data.IndexOf( 桃木剑)!= -1)
                if (true)
                {

                    阳(data);//生产记录+1
                            // 阴();//消费记录-1
                }

            }


        }
        public List<string> get玉女(byte SCK, int num)// 初始节拍 , 条数
        {
            List<string> list = new List<string>();
            for (int i = 0; i < num; i++)
            {
                switch ((SCK + 1 + i) % 8)// 单条数据   //齿盘
                {
                    case 0: list.Add(data8["坤"]); break;
                    case 1: list.Add(data8["艮"]); break;// 1
                    case 2: list.Add(data8["坎"]); break;
                    case 3: list.Add(data8["巽"]); break;
                    case 4: list.Add(data8["震"]); break;
                    case 5: list.Add(data8["离"]); break;
                    case 6: list.Add(data8["兑"]); break;
                    case 7: list.Add(data8["乾"]); break;
                    default:
                        break;
                }
            }
            return list;
        }


        #endregion
        #region 后台方法
        void 阳(string data)//生产数据
        {
            switch ((int)(拂尘 & 0x07))// 插入数据 (取最后3个 爻位)
            {
                                                          //轮次
                case 0: data8["坤"] = data; break;// 0      0  8
                case 1: data8["艮"] = data; break;// 1      1  9
                case 2: data8["坎"] = data; break;// 2      2  10
                case 3: data8["巽"] = data; break;// 3      3  11
                case 4: data8["震"] = data; break;// 4      4  12
                case 5: data8["离"] = data; break;// 5      5  13
                case 6: data8["兑"] = data; break;// 6      6  14
                case 7: data8["乾"] = data; break;// 7      7  15
                default:
                    break;
            }
            ++拂尘;// 转盘+1
        }

        void 阴()//消费数据
        {
            switch ((int)(( 7 - 拂尘) & 0x07))// 销毁数据(阴阳对立)
            {

                case 0: data8["坤"] = ""; break;
                case 1: data8["艮"] = ""; break;// 1
                case 2: data8["坎"] = ""; break;
                case 3: data8["巽"] = ""; break;
                case 4: data8["震"] = ""; break;
                case 5: data8["离"] = ""; break;
                case 6: data8["兑"] = ""; break;
                case 7: data8["乾"] = ""; break;
                default:
                    break;
            }
        }

C#     CANopen  上位机

最后

以上就是威武音响为你收集整理的CANopen数据抓包( C# )的全部内容,希望文章能够帮你解决CANopen数据抓包( C# )所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部