module Matter::SetupPayload::QRCode

Overview

QR Code payload generation for Matter onboarding

Matter QR codes encode more information than manual codes:

The payload uses TLV encoding and base-38 representation with "MT:" prefix

Matter Core Spec ยง 5.1.4.2 - QR Code Format

Defined in:

matter/setup_payload.cr

Constant Summary

BASE38_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-."

Base-38 alphabet for Matter QR codes

Class Method Summary

Class Method Detail

def self.generate_qr_code(discriminator : UInt16, pin : UInt32, vendor_id : UInt16, product_id : UInt16, flow : CommissionFlow = CommissionFlow::Standard, capabilities : DiscoveryCapability = DiscoveryCapability::BLE) : String #

Generate Matter QR code payload string

@param discriminator Device discriminator (12-bit) @param pin Setup PIN code (27-bit) @param vendor_id Vendor ID (16-bit) @param product_id Product ID (16-bit) @param flow Commission flow type @param capabilities Discovery capabilities @return QR code string with "MT:" prefix


[View source]
def self.parse_qr_code(qr_code : String) : Hash(Symbol, UInt64 | UInt32 | UInt16 | UInt8) #

Parse Matter QR code payload

@param qr_code QR code string (with or without "MT:" prefix) @return Hash with decoded values


[View source]