summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-07-21 23:03:37 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-07-21 23:03:37 +0000
commit1a8ce17d71b31f4722411e20a4ba1d69f07a609b (patch)
treee86b5de65cdb28b71261bf86168498f3bf606b0d /apps
parentd93bdb376ed8eaeaada1eb149b2c1f783e839bea (diff)
Make serial setup configurale in apps/examples/modbus
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4966 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'apps')
-rw-r--r--apps/examples/README.txt4
-rw-r--r--apps/examples/modbus/modbus_main.c42
2 files changed, 38 insertions, 8 deletions
diff --git a/apps/examples/README.txt b/apps/examples/README.txt
index 29cdf1a763..0e777eda71 100644
--- a/apps/examples/README.txt
+++ b/apps/examples/README.txt
@@ -490,6 +490,10 @@ examples/modbus
demos/LINUX directory of the FreeModBus version 1.5.0 (June 6, 2010)
that can be downloaded in its entirety from http://developer.berlios.de/project/showfiles.php?group_id=6120.
+ CONFIG_EXAMPLES_MODBUS_PORT, Default 0 (for /dev/ttyS0)
+ CONFIG_EXAMPLES_MODBUS_BAUD, Default 38400
+ CONFIG_EXAMPLES_MODBUS_PARITY, Default MB_PAR_EVEN
+
CONFIG_EXAMPLES_MODBUS_REG_INPUT_START, Default 1000
CONFIG_EXAMPLES_MODBUS_REG_INPUT_NREGS, Default 4
CONFIG_EXAMPLES_MODBUS_REG_HOLDING_START, Default 2000
diff --git a/apps/examples/modbus/modbus_main.c b/apps/examples/modbus/modbus_main.c
index 0f9dea4ac1..1250cdf84d 100644
--- a/apps/examples/modbus/modbus_main.c
+++ b/apps/examples/modbus/modbus_main.c
@@ -75,6 +75,18 @@
****************************************************************************/
/* Configuration ************************************************************/
+#ifndef CONFIG_EXAMPLES_MODBUS_PORT
+# define CONFIG_EXAMPLES_MODBUS_PORT 0
+#endif
+
+#ifndef CONFIG_EXAMPLES_MODBUS_BAUD
+# define CONFIG_EXAMPLES_MODBUS_BAUD 38400
+#endif
+
+#ifndef CONFIG_EXAMPLES_MODBUS_PARITY
+# define CONFIG_EXAMPLES_MODBUS_PARITY MB_PAR_EVEN
+#endif
+
#ifndef CONFIG_EXAMPLES_MODBUS_REG_INPUT_START
# define CONFIG_EXAMPLES_MODBUS_REG_INPUT_START 1000
#endif
@@ -175,9 +187,17 @@ static inline int modbus_initialize(void)
status = ENODEV;
- /* Initialize the FreeModBus library */
-
- mberr = eMBInit(MB_RTU, 0X0A, 0, 38400, MB_PAR_EVEN);
+ /* Initialize the FreeModBus library.
+ *
+ * MB_RTU = RTU mode
+ * 0x0a = Slave address
+ * CONFIG_EXAMPLES_MODBUS_PORT = port, default=0 (i.e., /dev/ttyS0)
+ * CONFIG_EXAMPLES_MODBUS_BAUD = baud, default=38400
+ * CONFIG_EXAMPLES_MODBUS_PARITY = parity, default=MB_PAR_EVEN
+ */
+
+ mberr = eMBInit(MB_RTU, 0x0a, CONFIG_EXAMPLES_MODBUS_PORT,
+ CONFIG_EXAMPLES_MODBUS_BAUD, CONFIG_EXAMPLES_MODBUS_PARITY);
if (mberr != MB_ENOERR)
{
fprintf(stderr, MAIN_NAME_STRING
@@ -185,9 +205,15 @@ static inline int modbus_initialize(void)
goto errout_with_mutex;
}
- /* Set the slave ID */
-
- mberr = eMBSetSlaveID(0x34, TRUE, g_slaveid, 3);
+ /* Set the slave ID
+ *
+ * 0x34 = Slave ID
+ * true = Is running (run indicator status = 0xff)
+ * g_slaveid = Additional values to be returned with the slave ID
+ * 3 = Length of additional values (in bytes)
+ */
+
+ mberr = eMBSetSlaveID(0x34, true, g_slaveid, 3);
if (mberr != MB_ENOERR)
{
fprintf(stderr, MAIN_NAME_STRING
@@ -345,7 +371,7 @@ int MAIN_NAME(int argc, char *argv[])
/* Handle command line arguments */
- g_modbus.quit = FALSE;
+ g_modbus.quit = false;
while ((option = getopt(argc, argv, "desqh")) != ERROR)
{
@@ -393,7 +419,7 @@ int MAIN_NAME(int argc, char *argv[])
break;
case 'q': /* Quit application */
- g_modbus.quit = TRUE;
+ g_modbus.quit = true;
pthread_kill(g_modbus.threadid, 9);
break;