9
0
Fork 0

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
This commit is contained in:
patacongo 2012-07-21 23:03:37 +00:00
parent d93bdb376e
commit 1a8ce17d71
2 changed files with 36 additions and 6 deletions

View File

@ -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

View File

@ -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 */
/* 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, 0, 38400, 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 */
/* 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);
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;