Minitel-1b Error Correction Procedure.
Reference: page 55 and on in <http://543210.free.fr/TV/stum1b.pdf>
License:
AGPL3
Copyright Pascal J. Bourguignon 2012 - 2012
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program.
If not, see <http://www.gnu.org/licenses/>
|
+ecp-block-size+ |
constant |
Size of an ECP block.
Initial value: 17
|
(ecp-active ecp-data) |
function |
Whether the ECP is active.
|
ecp-data |
structure |
State for the ECP algorithm.
|
(ecp-state ecp-data) |
function |
State of the ECP, one of :ecp-start, :ecp-block or :ecp-syn.
|
(process-output-buffer ecp buffer &key start end last) |
function |
ECP: An ECP-DATA structure maintaining the persistent data
between calls to PROCESS-OUTPUT-BUFFER.
BUFFER: Source data octet vector (only 7-bit values).
START: Index of the first octet in BUFFER to process.
END: Index of the first octet in BUFFER after the last to process.
LAST: When true, if there's not enough bytes in the BUFFER to
fill a packet, the packet is padded with NULs.
DO: Encode an ECP packet from bytes obtained from BUFFER, between START and END.
RETURN: index of first byte not processed from BUFFER; (ecp-block ecp) -- when a packet is complete,
index of first byte not processed from BUFFER; nil -- when the package is not complete.
|
(start-ecp ecp) |
function |
Initialize the ECP data.
|
statistics |
structure |
Statistics for the ECP algorithm.
|
(statistics-bytes-received statistics) |
function |
ECP statistics: number of bytes processed.
|
(statistics-correct-count statistics) |
function |
ECP statistics: number of correct blocks.
|
(statistics-corrected-count statistics) |
function |
ECP statistics: number of corrected errors.
|
(statistics-invalid-count statistics) |
function |
ECP statistics: number of invalid blocks.
|
(statistics-invalid-syn-count statistics) |
function |
ECP statistics: number of invalid syn.
|
(statistics-parity-errors statistics) |
function |
ECP statistics: number of parity errors.
|
(statistics-uncorrectable-count statistics) |
function |
ECP statistics: number of uncorrectable errors.
|
(statistics-uncorrected-count statistics) |
function |
ECP statistics: number of uncorrected errors.
|
(statistics-valid-syn-count statistics) |
function |
ECP statistics: number of valid syn.
|
(stop-ecp ecp) |
function |
Resets the ECP data.