Modified the demo/server application to use environment variables for the interface parameters (Thank you tomás!).

This commit is contained in:
skarg
2007-09-27 17:18:59 +00:00
parent da79c3826b
commit b534a6bf7f
+31 -15
View File
@@ -54,7 +54,6 @@
/* buffers used for receiving */
static uint8_t Rx_Buf[MAX_MPDU] = { 0 };
static char *Network_Interface = NULL;
static void Init_Service_Handlers(void)
{
@@ -106,25 +105,42 @@ int main(int argc, char *argv[])
unsigned timeout = 100; /* milliseconds */
time_t last_seconds = 0;
time_t current_seconds = 0;
char *pEnv = NULL;
/* allow the device ID to be set */
if (argc > 1)
Device_Set_Object_Instance_Number(strtol(argv[1], NULL, 0));
#if defined(BACDL_BIP)
/* FIXME: really needs to come from a config file */
if (argc > 2)
Network_Interface = argv[2];
if (argc > 3)
bip_set_port(strtol(argv[3], NULL, 0));
#elif defined(BACDL_MSTP)
RS485_Set_Baud_Rate(38400);
dlmstp_set_max_info_frames(1);
dlmstp_set_max_master(127);
if (argc > 2) {
Network_Interface = argv[2];
pEnv = getenv("BACNET_IP_PORT");
if (pEnv) {
bip_set_port(strtol(pEnv, NULL, 0));
} else {
bip_set_port(0xBAC0);
}
if (argc > 3) {
dlmstp_set_mac_address(strtol(argv[3], NULL, 0));
#elif defined(BACDL_MSTP)
pEnv = getenv("BACNET_MAX_INFO_FRAMES");
if (pEnv) {
dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0));
} else {
dlmstp_set_max_info_frames(1);
}
pEnv = getenv("BACNET_MAX_MASTER");
if (pEnv) {
dlmstp_set_max_master(strtol(pEnv, NULL, 0));
} else {
dlmstp_set_max_master(127);
}
pEnv = getenv("BACNET_MSTP_BAUD");
if (pEnv) {
RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0));
} else {
RS485_Set_Baud_Rate(38400);
}
pEnv = getenv("BACNET_MSTP_MAC");
if (pEnv) {
dlmstp_set_mac_address(strtol(pEnv, NULL, 0));
} else {
dlmstp_set_mac_address(127);
}
#endif
printf("BACnet Server Demo\n"
@@ -135,7 +151,7 @@ int main(int argc, char *argv[])
Device_Object_Instance_Number(),
MAX_APDU);
Init_Service_Handlers();
if (!datalink_init(Network_Interface))
if (!datalink_init(getenv("BACNET_IFACE")))
return 1;
atexit(cleanup);
/* configure the timeout values */