Code: Select all
idle = new c_interval(300000); // 300,000 msec = 5 minutes
Code: Select all
idle = new c_interval(300000); // 300,000 msec = 5 minutes
Code: Select all
protocol_link():port(-1),count(0),address('A'),printable(false),check_address(false),efd_protocol(false),
udp_redirect(false),efd_addr(1),step(PACKET_DEFAULT_STATE),running(false)
{
idle = new c_interval(300000); // 300,000 msec = 5 minutes
rbuf[0] = 0;
tbuf[0] = 0;
printf( "IP: 0x%lx, idle: 0x%lx\r\n", (DWORD)(&ip_addr), ( DWORD ) idle );
}
Code: Select all
IP: 0x403614c4, idle: 0x403c95e8
IP: 0x40363430, idle: 0x403c9600
IP: 0x4036539c, idle: 0x403c9610
IP: 0x40367308, idle: 0x403c9628
IP: 0x40369274, idle: 0x403c9638
IP: 0x4036b1e0, idle: 0x403c9650
IP: 0x4036d14c, idle: 0x403c9660
IP: 0x4036f0b8, idle: 0x403c9678
IP: 0x40371024, idle: 0x403c9688
IP: 0x40372f90, idle: 0x403c96a0
IP: 0x40374efc, idle: 0x403c96b0
IP: 0x40376e68, idle: 0x403c96c8
IP: 0x40378dd4, idle: 0x403c96d8
IP: 0x4037ad40, idle: 0x403c96f0
IP: 0x4037ccac, idle: 0x403c9700
IP: 0x4037ec18, idle: 0x403c9718
IP: 0x40380b84, idle: 0x403c9728
IP: 0x40382af0, idle: 0x403c9740
IP: 0x40384a5c, idle: 0x403c9750
IP: 0x403869c8, idle: 0x403c9768
IP: 0x4031a1f2, idle: 0x403c9988
Code: Select all
IP: 0x403614c9, idle: 0x403c95e8
IP: 0x40363435, idle: 0x403c9600
IP: 0x403653a1, idle: 0x403c9610
IP: 0x4036730d, idle: 0x403c9628
IP: 0x40369279, idle: 0x403c9638
IP: 0x4036b1e5, idle: 0x403c9650
IP: 0x4036d151, idle: 0x403c9660
IP: 0x4036f0bd, idle: 0x403c9678
IP: 0x40371029, idle: 0x403c9688
IP: 0x40372f95, idle: 0x403c96a0
IP: 0x40374f01, idle: 0x403c96b0
IP: 0x40376e6d, idle: 0x403c96c8
IP: 0x40378dd9, idle: 0x403c96d8
IP: 0x4037ad45, idle: 0x403c96f0
IP: 0x4037ccb1, idle: 0x403c9700
IP: 0x4037ec1d, idle: 0x403c9718
IP: 0x40380b89, idle: 0x403c9728
IP: 0x40382af5, idle: 0x403c9740
IP: 0x40384a61, idle: 0x403c9750
IP: 0x403869cd, idle: 0x403c9768
IP: 0x4031a1f7, idle: 0x403c9988
Code: Select all
protocol_link mandc[TOTAL_PROTOCOL_LINKS];
void UserMain(void * pd)
{
mandc[0].Init( -1, 'A', false, false );
...
}
Code: Select all
void UserMain(void * pd)
{
mandc[0].Init( -1, 'A', false, false );
puts( "Before" );
printf( "Init Serial: IP: 0x%lx, idle: 0x%lx\r\n", (DWORD) (&mandc[0].ip_addr), (DWORD) mandc[0].idle );
puts( "Calling Init" );
OSTimeDly( TICKS_PER_SECOND / 4 ); // wait for string to clock out.
InitMain();
...
}
void protocol_link::Init(int fd, char rs485_address, bool enable_address, bool as_udp)
{
static bool init_done = false;
if ( !init_done )
idle = new c_interval( 300000 ); // 300,000 msec = 5 minutes
printf( "1 In Init: idle = %lx, done = %d\r\n", (DWORD) idle, (int)init_done );
init_done = true;
port = fd;
address = rs485_address;
check_address = enable_address;
tbuf[0] = 0; // v97: null terminate response buffer in case no response to web-initiated serial cmd.
udp_redirect = as_udp; // v210: means to convert input stream into udp-style messages aka terminated by \r\n.
printf( "2 In Init: idle = %lx, done = %d\r\n", (DWORD) idle, (int) init_done );
Reset();
printf( "3 In Init: idle = %lx, done = %d\r\n", (DWORD) idle, (int) init_done );
}
Code: Select all
Waiting 2sec to start 'A' to abort
1 In Init: idle = 403c9818, done = 0
2 In Init: idle = 403c9818, done = 1
3 In Init: idle = 403c9818, done = 1
Before
Init Serial: IP: 0x403614c5, idle: 0x0
Calling Init