当前位置: 首页 > news >正文

广州做网站商城的公司电子商务网站开发与设计报告

广州做网站商城的公司,电子商务网站开发与设计报告,wordpress后台仅显示当前主题,网站工作状态建设1#xff0c;不要在虚拟机测试#xff0c;否则IgH无法收发数据包 现象#xff1a;虚拟机中运行IgH master并绑定网卡后#xff0c;主站由ORPHANED状态转换成IDLE状态#xff0c;但无法收发数据报。 这是因为虚拟机用的是虚拟网卡#xff0c;需通过iptables将数据包到转…1不要在虚拟机测试否则IgH无法收发数据包 现象虚拟机中运行IgH master并绑定网卡后主站由ORPHANED状态转换成IDLE状态但无法收发数据报。 这是因为虚拟机用的是虚拟网卡需通过iptables将数据包到转发到真实的网卡上实现收发数据的目的。但IgH替换了网卡驱动程序收到数据包后处理流程没有走内核的网络协议栈所以工作中tcp/ip层的iptables就不起作用导致IgH无法正常收发报文。 虚拟机网络原理参考ubuntu20.04 搭建kernel调试环境第六篇下-网络原理-CSDN博客   解决物理机安装ubuntu用来测试IgH。 2获取IgH的INFO、WARNING、ERR信息 rootubuntu:/home/gsf# echo 7 7 7 7 /proc/sys/kernel/printk #define EC_MASTER_INFO(master, fmt, args...) \printk(KERN_INFO EtherCAT %u: fmt, master-index, ##args)#define EC_MASTER_WARN(master, fmt, args...) \printk(KERN_WARNING EtherCAT WARNING %u: fmt, master-index, ##args)#define EC_MASTER_ERR(master, fmt, args...) \printk(KERN_ERR EtherCAT ERROR %u: fmt, master-index, ##args) 3获取IgH的DEBUG信息 rootubuntu:/home/gsf# vim /etc/init.d/ethercat #MASTER_ARGS 改成下面MASTER_ARGSdebug_level2 务必注意注意make modules_install install后需要重新修改 DEBUG主要是输出一些收发报文的数据比如 [73996.353863] EtherCAT DEBUG 0: ec_master_send_datagrams(device_index 0) [73996.353863] EtherCAT DEBUG 0: Adding datagram 0x2E [73996.353864] EtherCAT DEBUG 0: frame size: 46 [73996.353864] EtherCAT DEBUG 0: Sending frame: [73996.353864] EtherCAT DEBUG: FF FF FF FF FF FF 6C 24 08 29 52 19 88 A4 0E 10 [73996.353867] EtherCAT DEBUG: 05 2E 01 00 20 01 02 00 00 00 02 00 00 00 00 00 [73996.353869] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [73996.353871] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 4dmesg日志不全 现象IgH源码中加了很多打印连接从站后发现dmesg会失了部分日志。 下面的下图显示的是ec_master_idle_thread -- ecrt_master_send -- ec_master_send_datagrams发送数据报文时增加的printk打印。 datagram-index用的是master-datagram_index初始化是master-datagram_index为0所以所有主站发送的数据报文的index应该是从0递增的最大值255master-datagram_index是uint8_t类型到最大值后又从0开始计数。 原因主站初始化时ec_master_idle_thread线程循环执行循环时间比较短见下面代码 ec_master_idle_thread函数if (ec_fsm_master_idle(master-fsm)) {set_current_state(TASK_INTERRUPTIBLE);schedule_timeout(1); --------------- 1个jiffies} else {schedule(); ---------切换到其他线程执行如果系统空闲会继续执行该线程} 不接从站printk信息比较少可以完整输出。接上从站代码流程复杂自己加了很多printk由于循环时间短每轮循环都有大量的信息来不及输出就丢失了部分log。 解决 方法一直接修改主站的循环周期 ec_master_idle_thread函数//ec_master_set_send_interval(master, 1000000 / HZ); ec_master_set_send_interval(master, 5000000); -------改动1主站周期从4ms改成5sif (ec_fsm_master_idle(master-fsm)) {// set_current_state(TASK_INTERRUPTIBLE);// schedule_timeout(1); msleep(100); ----------改动2注掉上面2行} else {//schedule(); msleep(100); ----------改动2注掉上面1行} 方法二间接修改主站的循环周期 因为ec_master_idle_thread 每个周期都会执行ecrt_master_send -- ec_master_send_datagrams发送数据报文所以可以在发送报文时加个延时 ec_master_idle_thread函数//ec_master_set_send_interval(master, 1000000 / HZ); ec_master_set_send_interval(master, 5000000); -------改动1主站周期从4ms改成5s-----------------------------------------------------------------------------void ec_master_send_datagrams(ec_master_t *master, /** EtherCAT master */ec_device_index_t device_index /** Device index. */) {do {frame_data NULL;follows_word NULL;more_datagrams_waiting 0;// fill current frame with datagramslist_for_each_entry(datagram, master-datagram_queue, queue) {if (datagram-state ! EC_DATAGRAM_QUEUED ||datagram-device_index ! device_index) {continue;}……list_add_tail(datagram-sent, sent_datagrams);datagram-index master-datagram_index;EC_MASTER_DBG(master, 2, Adding datagram 0x%02X\n,datagram-index);msleep(100); ------------在这里加个延时 修改后log是全的。报文从0开始发送、接收是一一对应的 5过滤掉IgH主站插网线之前的log IgH主站网卡没有插网线意味着网卡的link_state处于down状态ec_master_idle_thread周期性执行ecrt_master_send发送数据报文在ecrt_master_send中如果网卡处于link down状态则会设置报文为EC_DATAGRAM_ERROR在这里加个printk见下代码log中过滤关键字EC_DATAGRAM_ERROR就可以了。 void ecrt_master_send(ec_master_t *master) {ec_datagram_t *datagram, *n;ec_device_index_t dev_idx;if (master-injection_seq_rt ! master-injection_seq_fsm) {// inject datagram produced by master FSMec_master_queue_datagram(master, master-fsm_datagram);master-injection_seq_rt master-injection_seq_fsm;}ec_master_inject_external_datagrams(master);for (dev_idx EC_DEVICE_MAIN; dev_idx ec_master_num_devices(master);dev_idx) {if (unlikely(!master-devices[dev_idx].link_state)) {// link is down, no datagram can be sentlist_for_each_entry_safe(datagram, n,master-datagram_queue, queue) {if (datagram-device_index dev_idx) {//在这里加行logprintk(KERN_ERR geshifei %s %d: set datagram-state EC_DATAGRAM_ERROR\n,__func__, __LINE__);datagram-state EC_DATAGRAM_ERROR;list_del_init(datagram-queue);}} 6IgH发送、接收的报文怎么看 以IgH读从站状态的广播报文0x0130为例打开DEBUG后demsg看到的报文 发送报文 [18773.590655] geshifei ec_master_send_datagrams 1059:  Adding datagram datagram-index0 [18773.590656] EtherCAT DEBUG 0: frame size: 46 [18773.590656] EtherCAT DEBUG 0: Sending frame: [18773.590658] EtherCAT DEBUG: FF FF FF FF FF FF 6C 24 08 29 52 19 88 A4 0E 10  [18773.590664] EtherCAT DEBUG: 07 00 00 00 30 01 02 00 00 00 00 00 00 00 00 00  [18773.590669] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  [18773.590674] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00  响应报文 [18773.710617] EtherCAT DEBUG 0: Received frame: [18773.710618] EtherCAT DEBUG: FF FF FF FF FF FF 6E 24 08 29 52 19 88 A4 0E 10  [18773.710624] EtherCAT DEBUG: 07 00 01 00 30 01 02 00 00 00 02 00 01 00 00 00  [18773.710628] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  [18773.710633] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00  [18773.710636] geshifei ec_master_receive_datagrams 1224:  datagram-index0 7wireshark报文怎么看 1注意source mac被从站改动过为什么改不清楚感觉没必要。 2正常情况下发送的报文WC 0响应报文的WC不为0存在从站的情况下 所以可通过上面两个特征来判断哪个是发送报文哪个是接收报文。 datagram-index用的是master-datagram_index初始化是master-datagram_index为0所以所有主站发送的数据报文的index应该是从0递增的最大值255master-datagram_index是uint8_t类型到最大值后又从0开始计数。 响应的报文不会也不能修改Index值因为IgH主站程序收到响应报文后需要根据报文的index去匹配对应的发送报文然后将发送报文从内部的发送队列中删除。
http://www.pierceye.com/news/873211/

相关文章:

  • 网站建设维护及使用管理办法营销策划的步骤
  • 优秀网站设计案例在家开个人工作室违法吗
  • 腾讯云建设网站wordpress仿知乎社区
  • 《网站开发技术》模板linchong.wordpress
  • 找做企业网站论文旅游网站建设
  • 类似情侣空间的网站开发seo外推软件
  • 网站建设策划方案怎么写工业品网络营销
  • 上海本地网站建设微信网站怎么建设
  • 江苏华江建设集团网站wordpress开发找工作
  • 家政服务网站源码自己做网站好还是让别人做
  • 手机网站用什么系统做网站在什么地方发帖子呢
  • 虚拟电脑可以做网站吗中国建设行业信息网站
  • 网站设计建设合同公司网页设计实例教程
  • 仿起点小说网站开发网站图片优化工具
  • 在线做logo的网站泉州做网站哪家好
  • 知名企业网站人才招聘情况如何网络系统集成
  • 做灯带的网站重庆有哪些好玩的地方
  • 小孩子做手工做游戏的网站百度账号设置
  • 大庆做网站公司巩义网站建设方案报价
  • 该网站受海外服务器保护品牌营销型网站建设公司
  • 免费做一建或二建题目的网站郑州企业建站系统模板
  • 想自己建个网站徐州做网站软件
  • 蓝色系网站设计企业应对承包商的施工方案尤其是
  • 旅游网站 源码 织梦导购网站开发
  • 头像制作网站开源低代码平台
  • 网站到期域名怎么解决办法自己动手建立网站3
  • 比较有名的网站建设平台吉林建设网站
  • 网站服务器解决方案wamp安装wordpress
  • 义乌制作网站赣州网站建设公司
  • 东莞网站平台后缀建设淘宝客网站