sdo的三种实现方法

1)就是 tuscany das的实现了,大家有兴趣可以自己去看看。
2)就是 EOS das的实现方式了。
其实就是对hibernate的一个扩充,实现了 sdo-r。
一个sdo是可以对应多个不同的 hbm mapping的,这个需要用studio的形式让用户做选择和配置。
3) Eclipse Teneo方式
teneo以前是elver 持久化组件,后来并入了Eclipse EMF Tools项目。
它的本质就是在 emf 对象和 hibernate/sdo间加了一个桥梁,这样我们只需要关注EMF对象的关系,而不用过多的考虑每一个eObject该如何与数据库表对应。

一般是用hibernate了,在这样的情况下,Teneo会根据ePackage所描述的Model中的eObject对象之间的关系,自动的产生hiernate.hbm.xml映射文件。
但是会有 数据库表结构需要 手工定的情况,这样的情况下,还是需要和EOS一样,用图形方式来让用户
选择。
可以参考  http://www.elver.org/hibernate/tutorialone/tutorial1_intro.html, 如果不想深入,
可以只看看下面的代码:
final HbDataStore dataStore = HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
dataStore.setEPackages(new EPackage[] { LibraryPackage.eINSTANCE });

final SessionFactory sessionFactory  = dataStore.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();

LibraryAdapterFactory adapterFactory = new LibraryAdapterFactory();

Library library  = LibraryFactory.eINSTANCE.createLibrary();
library.eAdapters().add( adapterFactory.createAdapter(library) );
library.setName("My Library");

session.save(library);

Writer writer = LibraryFactory.eINSTANCE.createWriter();
writer.setName("Writer One");

Book book = LibraryFactory.eINSTANCE.createBook();
book.setPages(305);
book.setTitle("The Hobbit");
book.setCategory(BookCategory.SCIENCE_FICTION_LITERAL);
book.getWriter().add(writer);

library.getWriters().add(writer);
library.getBooks().add(book);

session.getTransaction().commit();
session.close();


  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CANopen SDO是一种用于CAN总线上的数据对象传输协议。它允许节点之间交换数据对象,包括读、写和请求数据对象的参数。下面是一个简单的C语言实现CANopen SDO的步骤: 1. 定义数据结构:为了实现CANopen SDO协议,需要定义一些数据结构来存储传输的数据。这些数据结构包括: - SDO传输对象:包括SDO通信参数、数据缓冲区、数据长度等信息。 - SDO服务数据对象:包括服务代码、索引、子索引、传输数据等信息。 - SDO服务响应对象:包括响应代码、传输数据等信息。 2. 实现SDO协议:在CANopen SDO协议中,节点之间需要交换SDO服务数据对象和SDO服务响应对象。实现SDO协议的步骤如下: - 发送SDO服务数据对象:节点向其他节点发送SDO服务数据对象,并等待响应。 - 接收SDO服务响应对象:节点接收其他节点发送的SDO服务响应对象,并根据响应代码来判断是否传输成功。 - 处理SDO服务响应对象:如果SDO服务响应对象中的响应代码为“成功”,则节点可以继续进行数据传输。否则,节点需要重新发送SDO服务数据对象。 3. 实现CAN总线通信:为了实现CANopen SDO协议,节点之间需要进行CAN总线通信。实现CAN总线通信的步骤如下: - 初始化CAN总线:节点需要初始化CAN总线,包括设置波特率、打开CAN总线等操作。 - 发送CAN数据帧:在SDO协议中,节点需要发送SDO服务数据对象和接收SDO服务响应对象。这些数据在CAN总线上以CAN数据帧的形式进行传输。 - 接收CAN数据帧:节点需要接收其他节点发送的SDO服务数据对象和SDO服务响应对象。这些数据在CAN总线上以CAN数据帧的形式进行传输。 4. 实现应用程序:最后,需要编写应用程序来控制节点之间的数据传输。这些应用程序可以包括读、写、请求数据对象等操作。 总体来说,实现CANopen SDO协议需要以下几个关键步骤:定义数据结构、实现SDO协议、实现CAN总线通信、编写应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值