Table of Contents

Class UsageReportDraft

Namespace
Hi.Licenses
Assembly
HiDisp.dll

Internal Use Only. One usage report as the cloud lease client sends it in the reports array of a lease request – the wire names are the camelCase of these properties (CloudJson.Wire), a null left out, which the licence server's UsageIntake.ReadReport reads – and as the client queues it in usage-queue.json. The report is analytics: the account's step ledger is the chain's stepsTotal, never these counts. UsageMeter writes it under its lock and hands it out closed; a reader of the open one gets a Clone(). Public with public get/set because the shipped assembly is obfuscated and System.Text.Json works on the runtime property names; the properties are declared in the wire order.

public sealed class UsageReportDraft
Inheritance
UsageReportDraft
Inherited Members
Extension Methods

Properties

AppSessionId

The 16 random bytes of the process (AppSessionIdB64u), base64url without padding: the reports of one process share it.

public string AppSessionId { get; set; }

Property Value

string

Counts

The uses and seconds per feature id (UsageFeature), in ordinal order whatever the setter is given (a dictionary of another comparer is copied), so the wire text of the same counts is one text; empty, not null, on a new report.

public SortedDictionary<string, UsageCount> Counts { get; set; }

Property Value

SortedDictionary<string, UsageCount>

InitResolutionMm

The workpiece's initial resolution in mm at the play's first step; null when unknown.

public double? InitResolutionMm { get; set; }

Property Value

double?

MachiningResolutionMm

The machining resolution of the play in mm at its first step; null when unknown.

public double? MachiningResolutionMm { get; set; }

Property Value

double?

PeriodEndUtc

The UTC time of the report's last event, whole seconds, Utc: never under PeriodStartUtc and at most 60 minutes after it (the server refuses a period over 61 minutes).

public DateTime PeriodEndUtc { get; set; }

Property Value

DateTime

PeriodStartUtc

The UTC time of the event that opened the report, whole seconds, Utc.

public DateTime PeriodStartUtc { get; set; }

Property Value

DateTime

PlayClosed

True = the play ended in this period: the runner was reset, or the process exited, after the play saw a step or an NC run; false on a report cut at the hour while the play went on, and on one without a play.

public bool PlayClosed { get; set; }

Property Value

bool

PlaySeq

The ordinal of the play within the app session, from 1: the closed plays that saw a step or an NC run, plus one, given at the report's first step or NC run and carried on by the report that continues a play cut at the hour; null for a report of no play.

public uint? PlaySeq { get; set; }

Property Value

uint?

ReportId

16 random bytes drawn when the report opened, base64url without padding: with the device it makes a resent report one row on the server.

public string ReportId { get; set; }

Property Value

string

Steps

The machining steps counted in the period: the steps the step pipeline took.

public uint Steps { get; set; }

Property Value

uint

WorkpieceMm

The reference box of the play's workpiece in whole mm, three sides; null when unknown (a .wct stock) or no play was noted.

public uint[] WorkpieceMm { get; set; }

Property Value

uint[]

Methods

Clone()

Internal Use Only. A deep copy: the counts and the workpiece sides are copied, so the copy and the original move apart.

public UsageReportDraft Clone()

Returns

UsageReportDraft

The copy.