FINS/TCP Method

Section 7-4

86else

87{

88err_exit("FINS/TCP header send error");

89}

90

91 /*RECEIVE FINS/TCP COMMAND (READ RECEIVE FUNCTIONS)*/

92recvlen = 24;

93if (tcp_recv(sockfd, fins_tcp_header, recvlen) == recvlen)

94{

95

alarm(0); /*STOP

RESPONSE

MONITOR TIMER*/

96

 

 

 

97

/* CONFIRM WHETHER FINS NODE NUMBER SEND COMMAND

 

(CLIENT TO

SERVER)

WAS RECEIVED*/

98

if ((fins_tcp_header[8] != 0x00) (fins_tcp_header[9] != 0x00)

99

(fins_tcp_header[10] != 0x00) (fins_tcp_header[11] != 0x01))

100

{

 

 

 

 

 

101

err_exit("FINS/TCP illegal command error");

102

}

 

 

103

 

 

 

104printf("FINS/TCP header receive length %d¥n",recvlen);

105cli_node_no = fins_tcp_header[19];

106srv_node_no = fins_tcp_header[23];

107printf("FINS/TCP client Node No. = %d¥n",cli_node_no);

108printf("FINS/TCP server Node No. = %d¥n",srv_node_no);

109}

110else

111{

112err_exit("TCP receive error");

113}

114

115 /* SEND FINS/TCP COMMAND*/

116/*

117* GENERATE FINS COMMAND FRAME

118*/

119 fins_tcp_header[0] = 'F'; /* Header */

120fins_tcp_header[1] = 'I';

121fins_tcp_header[2] = 'N';

122fins_tcp_header[3] = 'S';

123 fins_tcp_header[4] = 0x00; /* Length */

124fins_tcp_header[5] = 0x00;

125fins_tcp_header[6] = 0x00;

126fins_tcp_header[7] = 8+18; /*Length of data from Command up to end of FINS frame */

127 fins_tcp_header[8] = 0x00; /* Command */

128fins_tcp_header[9] = 0x00;

129fins_tcp_header[10] = 0x00;

130fins_tcp_header[11] = 0x02;

131fins_tcp_header[12] = 0x00; /* Error Code */

132fins_tcp_header[13] = 0x00;

133fins_tcp_header[14] = 0x00;

134fins_tcp_header[15] = 0x00;

135

136 /* SEND FINS/TCP COMMAND*/

137sendlen = 16;

138if (send(sockfd,fins_tcp_header,sendlen,0) == sendlen) {

188

Page 212
Image 212
Omron CJ1W-ETN21 operation manual 188