Intermec PM43/PM43c Fingerprint Developer's Guide (PC23d, PC43d/t, PM23c, PM43 - Page 66

Retrieving Buffer Status With LOC or LOF

Page 66 highlights

Chapter 4 - Managing Input and Output To temporarily turn off background reception during some part of the program execution, issue a COMSET OFF statement, and then turn reception on again using a new COMSET ON statement. Note: Because COMSET ON/OFF statements empty the buffer, use COMBUF$ to read the buffer contents first. 6 Add a few lines to print the content of the buffer (line 1060) and create a loop that waits from input from the host (line 90). The entire example looks like this: NEW 10 COM ERROR 1 ON 20 A$="Max. number of char. received" 30 B$="End char. received" 40 C$="Attn. string received" 50 D$="Communication error" 60 COMSET 1, "A",CHR$(90),"#","BREAK",20 70 ON COMSET 1 GOSUB 1000 80 COMSET 1 ON 90 IF QDATA$="" THEN GOTO 90 100 END 1000 QDATA$=COMBUF$(1) 1010 Q% = COMSTAT (1) 1020 IF Q% AND 2 THEN PRINT A$ 1030 IF Q% AND 4 THEN PRINT B$ 1040 IF Q% AND 8 THEN PRINT C$ 1050 IF Q% AND 32 THEN PRINT D$ 1060 PRINT QDATA$ 1070 RETURN RUN 7 You can test the example by pressing Enter on the host keyboard. Then enter various characters and see what happens, starting with the start character, stop character, ignore character, attention string, and maximum number of characters parameters in the COMSET statement. Retrieving Buffer Status With LOC or LOF LOC and LOF return the status of the receive or transmitter buffers in an OPENed communication channel. If the channel is OPENed for INPUT: • LOC returns the remaining number of characters to be read from the receive buffer. • LOF returns the remaining free space (in bytes) in the receive buffer. If the channel is OPENed for OUTPUT: • LOC returns the remaining free space (bytes) in the transmitter buffer. • LOF returns the remaining number of characters to be transmitted from the transmitter buffer. 54 Fingerprint Developer's Guide

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163

Chapter 4 — Managing Input and Output
54
Fingerprint Developer’s Guide
To temporarily turn off background reception during some part of the program
execution, issue a COMSET OFF statement, and then turn reception on again
using a new COMSET ON statement.
6
Add a few lines to print the content of the buffer (line 1060) and create a loop
that waits from input from the host (line 90). The entire example looks like this:
NEW
10 COM ERROR 1 ON
20 A$=“Max. number of char. received”
30 B$=“End char. received”
40 C$=“Attn. string received”
50 D$=“Communication error”
60 COMSET 1, “A”,CHR$(90),“#”,“BREAK”,20
70 ON COMSET 1 GOSUB 1000
80 COMSET 1 ON
90 IF QDATA$=“” THEN GOTO 90
100 END
1000 QDATA$=COMBUF$(1)
1010 Q% = COMSTAT (1)
1020 IF Q% AND 2 THEN PRINT A$
1030 IF Q% AND 4 THEN PRINT B$
1040 IF Q% AND 8 THEN PRINT C$
1050 IF Q% AND 32 THEN PRINT D$
1060 PRINT QDATA$
1070 RETURN
RUN
7
You can test the example by pressing
Enter
on the host keyboard. Then enter
various characters and see what happens, starting with the start character, stop
character, ignore character, attention string, and maximum number of
characters parameters in the COMSET statement.
Retrieving Buffer Status With LOC or LOF
LOC and LOF return the status of the receive or transmitter buffers in an OPENed
communication channel.
If the channel is OPENed for INPUT:
LOC returns the remaining number of characters to be read from the receive
buffer.
LOF returns the remaining free space (in bytes) in the receive buffer.
If the channel is OPENed for OUTPUT:
LOC returns the remaining free space (bytes) in the transmitter buffer.
LOF returns the remaining number of characters to be transmitted from the
transmitter buffer.
Note:
Because COMSET ON/OFF statements empty the buffer, use COMBUF$
to read the buffer contents first.