reedsolomon.es

1.0.4 • Public • Published

reedsolomon.es

This is Reed-Solomon coding module which is porting from Zxing open source project written in Java.

Live demo

https://ryunosinfx.github.io/reedsolomon.es/index.html

usage

encode

<script type="module" src="./ReedSolomon.js"></script>
<script type="module">
import { ReedSolomonES } from './ReedSolomon.js';
  // t=(N-K)/2 (ByteAs8bit:max 0.97)
  const errorCrrectionReduntantRetio = 0.97;
  
  // ByteAs4bit*,ByteAs6bit*,ByteAs8bit,ByteAs10bit,ByteAs12bit,ByteAs14bit,ByteAs16bit*,QR_CODE_FIELD_256
  // *:has error,unusualbe.
  const presetName = 'ByteAs8bit';
  
  // K = planeUint8array.length
  const planeUint8array = new Uint8Array([xxxxxxxxxxxxxxxxxxxxxxxxxx]);
  
  const encordedUint8Array 
    = ReedSolomonES.encode(planeUint8array, presetName, errorCrrectionReduntantRetio);
      
</script>

decode

<script type="module" src="./ReedSolomon.js"></script>
<script type="module">
import { ReedSolomonES } from './ReedSolomon.js';
  // t=(N-K)/2 (ByteAs8bit:max 0.97).
  // It is must same setting on encording.
  const errorCrrectionReduntantRetio = 0.97;
  
  // ByteAs4bit*,ByteAs6bit*,ByteAs8bit,ByteAs10bit,ByteAs12bit,ByteAs14bit,ByteAs16bit*,QR_CODE_FIELD_256
  // *:has error,unusualbe. It is must same setting on encording.
  const presetName = 'ByteAs8bit';
  
  // N = encordedUint8Array.length
  const encordedUint8Array = new Uint8Array([yyyyyyyyyyyyyyyyyyyyyyy]); 
   
  // If you use ByteAs10bit,ByteAs12bit,ByteAs14bit. Then add [0] byte add satisfaction bit num by LCM;
  
  // Best effort mode:if errors are correctable,they are corrected.
  // But errors are not correctable,they are outputed.
  const decodedUint8Array 
    = ReedSolomonES.decode(encordedUint8Array, presetName, errorCrrectionReduntantRetio);
  
  // Strict mode:if errors are correctable,they are corrected.
  // But errors are not correctable,throw ReedSolomonException.
  const correctedUint8Array 
    = ReedSolomonES.decodeStrict(encordedUint8Array, presetName, errorCrrectionReduntantRetio);

</script>

refarence(java)

Source:

https://github.com/zxing/zxing/tree/master/core/src/main/java/com/google/zxing/common/reedsolomon

JavaDoc:

https://zxing.github.io/zxing/apidocs/com/google/zxing/common/reedsolomon/package-frame.html

Package Sidebar

Install

npm i reedsolomon.es

Weekly Downloads

1

Version

1.0.4

License

Apache-2.0

Unpacked Size

89.7 kB

Total Files

10

Last publish

Collaborators

  • ryunosinfx3