Intermec PB51 Fingerprint Developer's Guide (old) - Page 72

Retrieving Buffer Status With LOC or LOF

Page 72 highlights

Chapter 4 - Managing Input and Output • Attention string received (8). • Communication error (32). Different messages to be printed to the standard OUT channel, depending on what interrupted communication. By assigning the COMSTAT value to a numeric variable, execution is faster than checking the COMSTAT value several times for different values, as seen in this example: 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$ 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. 56 Intermec 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
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187

Chapter 4 — Managing Input and Output
56
Intermec Fingerprint Developer’s Guide
Attention string received (8).
Communication error (32).
Different messages to be printed to the standard OUT channel, depending on
what interrupted communication. By assigning the COMSTAT value to a
numeric variable, execution is faster than checking the COMSTAT value several
times for different values, as seen in this example:
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$
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.
Note:
Because COMSET ON/OFF statements empty the buffer, use
COMBUF$ to read the buffer contents first.