npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@w2a-iiot/raw-javascript-parsers

v4.2.1

Published

This packages contain the raw built javascript parsers for WIKA's IIoT devices.

Downloads

30

Readme

@w2a-iiot/raw-javascript-parsers

This packages contain the raw built javascript parsers for WIKA's IIoT devices.

These are intended to be used in the WIKA toolbox and are not intended to be used as standalone packages.

If you are looking for a way to include javascript parsers in your project, please refer to the @w2a-iiot/parsers package or the documentation.

Supported Devices and Versions

| Parser generation | Version | Devices | |-------------------------|---------|---------------------------------------------------------------------| | Modern modular | 4.x.x | PEW, NETRIS1, TRW | | Transitional TypeScript | 3.x.x | NETRIS2 | | Legacy JavaScript | 2.x.x | A2G, F98W6, GD20W, PGW23, NETRIS3 family (FLRU, PEU, PGU, TGU, TRU) |

Version 4.x.x

The parser is built on the codec abstraction layer and can host multiple codecs at once. Each codec ships with sensible default measuring ranges, but you should always tune them for the concrete probe you deploy.

  • decodeUplink(input: { bytes: number[], fPort: number, recvTime?: string }): Validates bytes, fPort, and optional recvTime before selecting the matching codec and decoding measurements or status messages. Returns a typed data payload for the chosen codec or an errors array when decoding fails.
  • decodeHexUplink(input: { bytes: string; fPort: number; recvTime?: string }): Accepts hexadecimal payloads, converts them to integer arrays, and delegates to decodeUplink. Useful when integrations provide the payload as hex rather than raw byte arrays.
  • encodeDownlink(input: { codec: string; input: unknown }): Looks up the requested codec and runs its encoder. On success it returns the downlink frame as an array of 8-bit integers. If the codec is missing or encoding is unsupported an exception is thrown.
  • adjustMeasuringRange(channelName: string, range: { start: number; end: number }): Updates the measuring range for the named channel across every registered codec, enabling runtime calibration without rebuilding the bundle. Use this right after instantiating the parser to align the default ranges with your sensor’s data sheet. If the channel is unknown, an error is thrown.
  • adjustRoundingDecimals(decimals: number): Normalizes the requested precision, then applies it to all codecs so numeric outputs round consistently.

Version 3.x.x

Only the NETRIS2 device uses this format. The parser is written in TypeScript and ships as a function that returns the helpers below.

  • decodeUplink(input: { bytes: number[], fPort: number, recvTime?: string }): Performs schema validation on the uplink structure, inspects the message type byte, and decodes measurements, process alarms, technical alarms, configuration status, identification, or keep-alive frames.
  • decodeHexUplink(input: { bytes: string; fPort: number; recvTime?: string }): Ensures the bytes field is a valid hexadecimal string, converts it to an integer array, and forwards the request to decodeUplink.
  • encodeDownlink(input: DownlinkInput): number[]: Accepts one of the typed NETRIS2 actions (factory reset, battery reset, channel disable, main configuration update, process alarm configuration, measurement offset, or start-up time). Returns the downlink frame as an array of 8-bit integers on success or throws an exception when validation fails. Input varies based on the device.
  • adjustRoundingDecimals(decimals: number): Overrides the default rounding precision used when presenting channel values.

Version 2.x.x

The parser is delivered as a single JavaScript file that manipulates global measurement ranges. Before the decoding helpers can be used you must edit the top-level variables (for example FORCE_RANGE_START, FORCE_RANGE_END, DEVICE_TEMPERATURE_RANGE_START, DEVICE_TEMPERATURE_RANGE_END) so they reflect the sensor-specific measuring span published in the device documentation.

  • decodeUplink(input: { bytes: number[]; fPort: number; recvTime?: Date }): Decodes strain, device temperature, and battery voltage readings when the measurement ranges are defined. Populates the data object with the scaled values or records parsing errors in errors.
  • decodeHexString(fPort: number, hexEncodedString: string): Converts a hex string to bytes and then runs decodeUplink.
  • decodeBase64String(fPort: number, base64EncodedString: string): Converts a Base64 string to bytes before delegating to decodeUplink.

All APIs above emit their results as plain JavaScript objects that can be consumed directly by gateways, network servers, or custom applications.