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  上位机

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值