RTnoV3 is a program which enables your device to communicate with RT-middleware world This is an example of RTnoV3 with Ethernet Connection. To know RT-middleware, visit: http://www.openrtm.org To know more about RTno, visit: http://ysuga.net/robot_e/rtm_e/rtc_e/1065?lang=en

Dependencies:   EthernetNetIf mbed RTnoV3

Files at this revision

API Documentation at this revision

Comitter:
ysuga
Date:
Thu Feb 09 09:45:13 2012 +0000
Commit message:
This is first publish of RTno V3 Ethernet

Changed in this revision

EthernetNetIf.lib Show annotated file Show diff for this revision Revisions of this file
RTnoV3.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetNetIf.lib	Thu Feb 09 09:45:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/sherckuith/code/EthernetNetIf/#479ce5546098
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RTnoV3.lib	Thu Feb 09 09:45:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/ysuga/code/RTnoV3/#9fac71a0bff3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Feb 09 09:45:13 2012 +0000
@@ -0,0 +1,164 @@
+#include "mbed.h"
+
+
+
+/**
+ * RTno_Template.pde
+ * RTno is RT-middleware and arduino.
+ *
+ * Using RTno, arduino device can communicate any RT-components 
+ *  through the RTno-proxy component which is launched in PC.
+ * Connect arduino with USB, and program with RTno library.
+ * You do not have to define any protocols to establish communication
+ *  between arduino and PC.
+ *
+ * Using RTno, you must not define the function "setup" and "loop".
+ * Those functions are automatically defined in the RTno libarary.
+ * You, developers, must define following functions:
+ *  int onInitialize(void);
+ *  int onActivated(void);
+ *  int onDeactivated(void);
+ *  int onExecute(void);
+ *  int onError(void);
+ *  int onReset(void);
+ * These functions are spontaneously called by the RTno-proxy
+ *  RT-component which is launched in the PC.
+ * @author Yuki Suga
+ * This code is written/distributed for public-domain.
+ */
+
+#include <RTno.h>
+
+/**
+ * This function is called at first.
+ * conf._default.baudrate: baudrate of serial communication
+ * exec_cxt.periodic.type: reserved but not used.
+ */
+void rtcconf(config_str& conf, exec_cxt_str& exec_cxt) {
+  conf._default.connection_type = ConnectionTypeEtherTcp;
+  conf._default.port = 23;
+  conf._default.mac_address = MACaddr(0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED);
+  conf._default.ip_address = IPaddr(192,168,42,100);
+  conf._default.subnet_mask = IPaddr(255,255,255,0);
+  conf._default.default_gateway = IPaddr(192,168,42,254);
+  // exec_cxt.periodic.type = ProxySynchronousExecutionContext;
+   exec_cxt.periodic.type = Timer1ExecutionContext; // onExecute is called by Timer1. Period must be specified by 'rate' option.
+   exec_cxt.periodic.rate = 100; // [Hz] This option is indispensable when type is Timer*ExecutionContext.
+}
+
+
+/** 
+ * Declaration Division:
+ *
+ * DataPort and Data Buffer should be placed here.
+ *
+ * available data types are as follows:
+ * TimedLong
+ * TimedDouble
+ * TimedFloat
+ * TimedLongSeq
+ * TimedDoubleSeq
+ * TimedFloatSeq
+ *
+ * Please refer following comments. If you need to use some ports,
+ * uncomment the line you want to declare.
+ **/
+TimedLong in0;
+InPort<TimedLong> in0In("in0", in0);
+
+TimedLong out0;
+OutPort<TimedLong> out0Out("out0", out0);
+
+//////////////////////////////////////////
+// on_initialize
+//
+// This function is called in the initialization
+// sequence. The sequence is triggered by the
+// PC. When the RTnoRTC is launched in the PC,
+// then, this function is remotely called
+// through the USB cable.
+// In on_initialize, usually DataPorts are added.
+//
+//////////////////////////////////////////
+int RTno::onInitialize() {
+  /* Data Ports are added in this section.
+   */
+  addInPort(in0In);
+  addOutPort(out0Out);
+  
+  // Some initialization (like port direction setting)
+  // int LED = 13;
+  return RTC_OK; 
+}
+
+////////////////////////////////////////////
+// on_activated
+// This function is called when the RTnoRTC
+// is activated. When the activation, the RTnoRTC
+// sends message to call this function remotely.
+// If this function is failed (return value 
+// is RTC_ERROR), RTno will enter ERROR condition.
+////////////////////////////////////////////
+int RTno::onActivated() {
+  // Write here initialization code.
+  return RTC_OK; 
+}
+
+/////////////////////////////////////////////
+// on_deactivated
+// This function is called when the RTnoRTC
+// is deactivated.
+/////////////////////////////////////////////
+int RTno::onDeactivated()
+{
+  // Write here finalization code.
+  return RTC_OK;
+}
+
+//////////////////////////////////////////////
+// This function is repeatedly called when the 
+// RTno is in the ACTIVE condition.
+// If this function is failed (return value is
+// RTC_ERROR), RTno immediately enter into the 
+// ERROR condition.r
+//////////////////////////////////////////////
+int RTno::onExecute() {
+  /**
+   * Usage of InPort with premitive type.
+   */
+  
+  if(in0In.isNew()) {
+    in0In.read();
+    out0.data = in0.data;
+    out0Out.write();
+  } 
+  
+    
+  return RTC_OK; 
+}
+
+
+//////////////////////////////////////
+// on_error
+// This function is repeatedly called when
+// the RTno is in the ERROR condition.
+// The ERROR condition can be recovered,
+// when the RTno is reset.
+///////////////////////////////////////
+int RTno::onError()
+{
+  return RTC_OK;
+}
+
+////////////////////////////////////////
+// This function is called when 
+// the RTno is reset. If on_reset is
+// succeeded, the RTno will enter into
+// the INACTIVE condition. If failed 
+// (return value is RTC_ERROR), RTno
+// will stay in ERROR condition.ec
+///////////////////////////////////////
+int RTno::onReset()
+{
+  return RTC_OK;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Feb 09 09:45:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/14f4805c468c