The cerlc application

Version: 0.2.1

A Native Erlang, Custom Configurable, Cyclic Redundancy Check (CRC), Function Generator

Select from over 50 predefined CRC algorithms.

OR

Generate a custom CRC algorithm by manually specifying the parameters:

bit width, polynomial, initial value, final XOR value, and data reflected or not

Use:
In an Erlang application:
  % Add to list of dependencies in rebar.config
  {deps, [
    {cerlc, "0.2.0"}
  ]}.


  % Example: Using a predefined CRC algorithm
  CrcDefn = cerlc:init(crc16_aug_ccitt),

  % Data may be a binary or list of bytes
  Crc = cerlc:calc_crc(Data, CrcDefn)


  % Example: Creating a custom CRC algorithm
  % Custom CRC parameters: {Bits, Polynomial, InitValue, FinalXorValue, Reflected}
  CustomDefn = cerlc:init({8, 16#4F, 0, 16#FF, false}),

  Crc = cerlc:calc_crc(Data, CustomDefn)


  % Example: Using a macro to evaluate init() at compile time
  -define(CRC_DEFN, cerlc:init(crc16_aug_ccitt)).

  Crc = cerlc:calc_crc(Data, ?CRC_DEFN),
In an Elixir application:
  # Add to list of dependencies in mix.exs
  def deps do
    [
      {:cerlc, "~> 0.2.0"}
    ]
  end


  # Example: Using a predefined CRC algorithm
  crc8_defn = :cerlc.init(:crc8)

  # Data may be a binary or list of bytes  
  crc = :cerlc.calc_crc(data, crc8_defn)


  # Example: Creating a custom CRC algorithm
  # Custom CRC parameters: {bits, polynomial, init_value, final_xor_value, reflected}
  custom_defn = cerlc:init({16, 0x1234, 0xFFFF, 0xFFFF, true}),

  crc = :cerlc.calc_crc(data, custom_defn)


  # Example: Using a module attribute to evaluate init() at compile time
  @crc32_defn :cerlc.init(:crc32_c)

  crc = :cerlc.calc_crc(data, @crc32_defn)
Predefined CRC Algorithms
8 Bits 16 Bits 32 Bits 64 Bits
crc8 crc16_ccitt_zero crc32 crc64_ecma_182
crc8_sae_j1850 crc16_arc crc32_bzip crc64_go_iso
crc8_sae_j1850_zero crc16_aug_ccitt crc32_c crc64_we
crc8_8h2f crc16_buypass crc32_d crc64_xz
crc8_cdma2000 crc16_ccitt_false crc32_mpeg
crc8_darc crc16_cdma2000 crc32_posix
crc8_dvb_s2 crc16_dds_110 crc32_q
crc8_ebu crc16_dect_r crc32_jamcrc
crc8_icode crc16_dect_x crc32_xfer
crc8_itu crc16_dnp
crc8_maxim crc16_en_13757
crc8_sensirion crc16_genibus
crc8_rohc crc16_maxim
crc8_wcdma crc16_mcrf4xx
crc16_riello
crc16_t10_dif
crc16_teledisk
crc16_tms37157
crc16_usb
crc16_a
crc16_kermit
crc16_modbus
crc16_x_25
crc16_xmodem

Generated by EDoc