Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf mbed RTnoV3
Revision 0:51b3b7776199, committed 2012-02-09
- 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
--- /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