转自http://bbs.21ic.com/icview-878522-1-1.html   前段时间学习了CanOpen协议,到网上下载的CanFestival3-10源码,移植到VC.QT.STM32等平台,由于网上的资源较少,走了不少弯路,移植好使用过程中才逐渐暴露出各种问题,比如OD字符串传输.心跳时间不准确等等,现在已经解决了遇到的所有问题,移植出来的工程能够完好支持CanOpen协议,花了点时间,整理出一个简单易用的移植方法说明,也写了一些比较实用的调试工具,本来还想整理SDO.PD…
前段时间学习了CanOpen协议,到网上下载的CanFestival3-10源码,移植到VC.QT.STM32等平台,由于网上的资源较少,走了不少弯路,移植好使用过程中才逐渐暴露出各种问题,比如OD字符串传输.心跳时间不准确等等,现在已经解决了遇到的所有问题,移植出来的工程能够完好支持CanOpen协议,花了点时间,整理出一个简单易用的移植方法说明,也写了一些比较实用的调试工具,本来还想整理SDO.PDO.EDS文件装载等相关知识的,可惜比较忙,等什么时候有空了再整理其他的吧!先把移植的贴上来,…
一.背景 CAN组网就必须得要应用层协议,原因就在于 * 便于网络管理与控制 * 确认数据的收发 * 发送大于8个字节的数据块(CAN每帧数据传输大小为8字节) * 为不同节点分配不同的报文标识符 * 定义帧报文的内容及含义(这在我看来是最主要的原因) * 网络的监控,节点故障的诊断与标识 CAN上层协议有许多,用大家都公认的,便于产品的兼容,因此,CANopen成为备选项. CANopen有个开源协议栈[CANFestival],同时有一位大神已经做了移植并记录,在此就厚着脸皮转载过来以做备份…
郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!(这条文章已经被阅读了 次) 时间:2010/03/04 06:47am 来源:winshton [这个贴子最后由winshton在 2014/05/05 05:40am 第 1 次编辑] C语言编写,支持CANopen CiA301协议的所有功能,主从站通吃:移植简单,跨平台:windows linux ucos 裸奔都可以,带有OD生成工具(python编写,可在windows和linux环境下使用),采用…
经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两种架构,目前最常用的架构是ALSA,本文也使用ALSA架构对WM8960驱动进行移植. ASoC是对ALSA驱动架构的进一步封装.ASoC将ALSA驱动中的各模块抽象为三部分:Platform.Codec和Machine.Platform主要是平台硬件驱动,包括SoC的IIS模块.DMA等,在本文中…
嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩写的<CAPWAP移植进展.docx>对openCapwap的移植过程有了比较详细的描述,所以在此就不涉及技术细节了,本文档主要以openCapwap的移植为例,总结嵌入式linux应用程序移植的一般方法和步骤,为以后可能需要的移植工作提供一些的思路. 嵌入式linux应用程序移植的步骤包括: 1…
//协议(Protocols) import UIKit /*协议(Protocols) 1.协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法.属性,以及其他需要的东西 2.类.结构体或枚举都可以采纳协议,并为协议定义的这些要求提供具体实现.某个类型能够满足某个协议的要求,就可以说该类型“符合”这个协议. 3.除了采纳协议的类型必须实现的要求外,还可以对协议进行扩展,通过扩展来实现一部分要求或者实现一些附加功能,这样采纳协议的类型就能够使用这些功能. 协议定义语法:  protoco…
概述 本指南用于帮助开发者将现有的基于 ARM* 的 NDK 应用移植到 x86.假设您已经拥有一个正常执行的应用,须要知道怎样可以高速让 x86 设备在 Android* Market 中找到您的应用,本文将可以为您提供一些入门信息.同一时候本指南还提供了一些技巧和指南,以帮助您解决在移植过程中可能会遇到的编译器问题. 内容 概述 NDK 概述 JNI 的性能影响和开销 获取 NDK NDK 内部组件简单介绍 Makefiles 命令行构建 处理原生库文件 执行时验证 总结 移植概述 移植技巧…
Go学习笔记07-结构体与方法 Go语言 面向对象 结构的定义与创建 面向对象 Go语言只支持封装,不支持继承和多态. Go语言中只有struct,即结构体:没有class. 结构的定义与创建 package main  import "fmt"  //定义结构  type treeNode struct {  value int  left, right *treeNode  }  //自定义的工厂函数  func createNode(value int) *treeNode{ …
(十年前的旧文,不舍等扔) 创建日期:2005-11-17 修改日期:2005-11-17 文件名称:简单CANOpen 协议说明.doc 作者:winshton 版本:V1.0 (注:本文以24in 24out I/O模块为例说明,对在单片机下实现简单的CANopen简单功能作分析设计,文档中所有功能均已在AVR上实现) 本说明是CAN上层协议CANOpen协议的嵌入式简化,较原始CANOpen版本简单易用,且更适应嵌入式模块通讯的需要,并且兼容CANOpen协议. 下面按照协议支持的功能分别…
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程…
androidclient一般不直接訪问站点数据库,而是像浏览器一样发送get或者post请求.然后站点返回client能理解的数据格式,client解析这些数据.显示在界面上.经常使用的数据格式是xml和json. 能够理解client事实上是一个你自定义标记语言的浏览器,一般浏览器能解析的是html+css的数据,而androidclient能解析的是xml和json(或者都不是而是你自定义的火星格式),服务端为了能满足client输出这样的数据格式的需求,不得不专门针对client开发不同…
解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别 标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD 6.Options 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RESTful规范的web应用程序,则这六种方法都会用到.不过即使暂时不想涉及REST,了解这六种方法的本质仍然是很有作用的.大家将会发现,原来web也是很简洁明了的.下面依次说明这六种方法. 1,GET:GET可…
iOS学习(OC语言)知识点整理 一.关于协议(Protocol)的介绍 1)概念:协议指多个对象之间协商的一个接口对象,协议提供了一些方法用在协议的实现者和代理者      之间通讯的一种方式 2)声明一个协议@protocol协议的名字<基协议> 一个协议可以遵守另一个协议:      基协议(这个协议就拥有了基协议中所有方法的声明) 3)协议中不能声明成员变量,只能有方法声明. 4)协议中声明方法,默认是required 表明方法是必须要实现的,否则会有系统警告,但不会报错 5)协议中@…
需求:在ViewController中,点击Button,push到下一个页面NextViewController,在NextViewController的输入框TextField中输入一串字符,返回的时候,在ViewController的Label上面显示文字内容, (1)第一种方法:首先看看通过“协议/代理”是怎么实现两个页面之间传值的吧, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //NextViewController…
学习笔记 关于Jquery的merge方法 话不多说,先上图 使用jquery时,其智能提示如上,大概意思就是合并first和second两个数组,得到的结果是first+(second去重后的结果)的并集 接下来,做出测试: $(function () { var arr1 = ['apple', 'orange',1, 'cherry', 'orange']; var arr2 = ['chen', 343, true, 'cherry',1]; var result = $.merge(a…
<深入Java虚拟机学习笔记>- 第19章 方法的调用与返回…
String的split方法支持正则表达式: 1. 正则表达式\s表示匹配任何空白字符 2. +表示匹配一次或多次…
论DATASNAP远程方法支持自定义对象作参数 DATASNAP远程方法已经可以支持自定义对象作参数,这是非常方便的功能. 1)自定义对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; end; 2)远程方法定义 function TServerMethods1.QuerySql4(const myInfo: TMyInfo): TFDJSONDataSets;var d:…
有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATASNAP会自动使用JSON序列和还原自定义的对象. 1)自定义一个对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; RecsMax: Integer; end; 2)服务端远程…
强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016 强化学习读书笔记 - 00…
opencv-学习笔记(1)常用函数和方法. cv2.imread(filename,falg) filename是文件名字 flag是读入的方式 cv2.MREAD_UNCHANGED :不进行转化,比如保存为了16位的图片,读取出来仍然为16位. cv2.IMREAD_GRAYSCALE :进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1. cv2.IMREAD_COLOR :进行转化为三通道图像. cv2.IMREAD_ANYDEPTH :如果图像深度为16…
这里详细介绍了CAN协议中数据通信帧每位的含义,有图片,值得一看:https://www.cnblogs.com/pejoicen/p/3986587.html 这里介绍了CanOpen协议,https://blog.csdn.net/plc_jianghao/article/details/77824241 再看官网解释:https://www.can-cia.org/can-knowledge/canopen/sdo-protocol/ CanOpen开源项目: 项目名:CANopenSoc…
在.vue文件中让html代码自动补全的方法(支持vscode) https://blog.csdn.net/qq_36529459/article/details/79196763 "files.associations": { "*.vue": "html" },…
来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字.相应的截图如下: 实现的代码如下: 定义协议: #import <UIKit/UIKit.h> @protocol NoteDelegate //回调函数 -(void)messageCallBack:(NSString *)string; @end 调用协议…
// 为Promise添加finally方法支持 Promise.prototype.finally = function (callback) {   let P = this.constructor;   return this.then(     value => P.resolve(callback()).then(() => value),     reason => P.resolve(callback()).then(() => {       throw reaso…
在网上下载CanFestival源码最新版本CanFestival-3-884a60cbb83e建立以下文件夹:inc文件夹:放LM3S8962硬件相关以及驱动部分的头文件,adc.h.hw_adc.h等等:Lib文件夹:放集成库文件driverlib.lib,这个需要比较新的,因为遇到老的库文件缺少CANbitset()函数:Startup文件夹:放启动代码,Keil软件自身提供的,只需要加入定时器中断(CANopen需要一个16位定时器)和CAN接收中断处理函数:Target文件夹:目标板初…
1. 路由选择的方法 (1)基本思想 不是收到IP分组后才能为其选路,而是预先获得所有的目的的路由(Routing Protocol) IP报文按预定的路由转发(route table) (2)预定路由:路由表(route table) 路由表 也可称为 转发表(forwarding table) 主机 和 路由器都用路由表实现报文的发送.转发 2. 路由表(route table)中包含的信息 (1)思想: 使用尽可能少的信息实现选路 (2)包含的信息: (3)举例: (4)讨论: 路由表的大…
源地址:https://www.cnblogs.com/poissonnotes/p/4372136.html 无法启动此程序,因为计算机中丢失 MSVCRTD.dll.尝试重新安装该程序以解决此问题. 我用的操作系统是Windows 7 -64bit,我把DLL下载以后按常往的习惯放入到System32 目录下,结果完全没有效果. 后来一看,System32目录下面还有一个SysWOW64的文件夹. 放到这个文件夹下以后问题解决! ps:WoW64 (Windows-on-Windows 64…
一:准备材料: mavlink源码 stm32串口程序    1.mavlink源码:        a.进入mavlink官网(http://qgroundcontrol.org/mavlink/start) 作者:恒久力行 QQ:624668529                                      b.下拉到MAVLink Code and Generator点击MAVLink Generator (C/C++, Python)下载源码生成器            …