Receives data from a given connection until rendered screen signals a specified status. This function is only valid on open connections that have a screen renderer associated with them and define statuses by an underlying protocol, as is the case with Telnet connections.
WebAPI.bdh
WebTcpipScreenRecvPacketsUntilStatus( in hWeb : number, in sStatusName : string, in sStatusValue : string, in nOptions : number optional, in nMaxLen : number optional, out sRecv : string optional ) : boolean;
true if the operation was successful and data was received until specified status value was found
false otherwise
Parameter | Description |
---|---|
hWeb | Valid handle to a Web connection created by WebTcpipConnect. Web connection must be in Telnet mode (by a previous WebTcpipSetTelnetMode function call) and have a screen renderer associated with it. |
sStatusName | Status identifier against which the content of sStatusValue should be compared. The only supported status is "Keyboard Locked". |
sStatusValue | String value that the status value should be compared against. Valid strings are "true" and "false". |
nOptions |
By default the retrieved content has to be equal with the compared sVerify string, case-insensitively (optional). Comparison options are:
|
nMaxLen | Maximum string length of the value to be compared (optional). |
sRecv | Output buffer for all binary data received from the connection until sStatusValue matches the rendered field, including the last received packet that has the desired status value (optional). |
dcltrans transaction TInit begin StrSetHostCP(1148); // 1148 (IBM EBCDIC - International (500 + Euro)) end TInit; transaction TMain var hWeb0 : number; iFieldPos : number; begin WebTcpipConnect(hWeb0, "My.TelnetHost.IP", WEB_PORT_TELNET); // Port: 23 WebTcpipSetTelnetMode(hWeb0, TERMINAL_TYPE_3270, 80, 24, true, TELNET_MODEOPT_RFC_1576 | TELNET_MODEOPT_AUTO_RECV); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TerminalType); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TerminalType); WebTelnetRecvSubNegotiation(hWeb0, TELNET_OPT_TerminalType); WebTelnetSendTerminalType(hWeb0, "IBM-3278-2-E"); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_EndOfRecord); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_EndOfRecord); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_EndOfRecord); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_EndOfRecord); WebTelnetSendCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary); WebTelnetSendCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary); WebTelnetRecvCommand(hWeb0, TELNET_CMD_DO, TELNET_OPT_TransmitBinary); WebTelnetRecvCommand(hWeb0, TELNET_CMD_WILL, TELNET_OPT_TransmitBinary); WebTelnetRecvRecord(hWeb0); WebTelnetRecvRecord(hWeb0); WebTelnetSendRecord(hWeb0, "\h88001181A600000B0100005000180050" // ····¦······P···P 00000000 "\h001800168186000800F4F1F1F2F2F3F3" // ·········ôññòòóó 00000010 "\hF4F4F5F5F6F6F7F7000D81870400F0F1" // ôôõõöö÷÷······ðñ 00000020 "\hF1F2F2F4F40007818800010200178181" // ñòòôô··········· 00000030 "\h01000050001801000100030004000909" // ···P············ 00000040 "\h0C0780001B81858200090C0000000007" // ················ 00000050 "\h00000002B900250100F103C301360006" // ····¹·%··ñ·Ã·6·· 00000060 "\h81990000001281970000080008000101" // ················ 00000070 "\h000B0401C0C1000981A80200F0FFFFFF" // ····ÀÁ···¨··ð··· 00000080 "\hFF000C81950000081108110101000F81" // ················ 00000090 "\h80A687888185869997A89580"); // ·¦·······¨·· 000000A0 WebTelnetRecvRecord(hWeb0); WebTcpipRecvPackets(hWeb0); WebTelnetRecvRecord(hWeb0); WebTelnetSendRecord(hWeb0, "\h7D5B6F115B6F" + StrToHostCP("1")); WebTcpipScreenRecvPacketsUntilStatus(hWeb0, "Keyboard Locked", "false"); WebTelnetSendRecord(hWeb0, "\h7D5BF0115BF0" + StrToHostCP("12")); WebTcpipScreenRecvPacketsUntilText(hWeb0, 6, 22, "Choice: "); WebTelnetSendRecord(hWeb0, "\h7D5A5E115A5E" + StrToHostCP("12")); WebTcpipSetPacketBoundary(hWeb0, "\nFFEF"); WebTcpipScreenRecvPacketsUntilField(hWeb0, 1, " "); iFieldPos := WebTelnetScreenGetFieldIndex(hWeb0,16, 22); if iFieldPos = 1 then WebTcpipShutdown(hWeb0); end; end TMain;