3using System.Threading.Tasks;
20 private DateTimeOffset value;
49 if (DateTimeOffset.TryParse(Content.
DataString, out DateTimeOffset Value) ||
54 this.Timestamp = DateTime.UtcNow;
84 return Task.CompletedTask;
100 (n) => Task.FromResult<DateTime?>(
this.value.DateTime),
103 this.value = new DateTimeOffset(v, this.value.Offset);
104 this.Topic.MqttClient.PUBLISH(this.Topic.FullTopic, this.QoS, this.Retain, Encoding.UTF8.GetBytes(CommonTypes.EncodeRfc822(this.value)));
105 return Task.CompletedTask;
107 new TimeControlParameter(
"Offset",
"Publish",
"Time zone:",
"Time zone portion of topic.",
null,
null,
108 (n) => Task.FromResult<TimeSpan?>(
this.value.Offset),
111 this.value = new DateTimeOffset(this.value.DateTime, v);
112 this.Topic.MqttClient.PUBLISH(this.Topic.FullTopic, this.QoS, this.Retain, Encoding.UTF8.GetBytes(CommonTypes.EncodeRfc822(this.value)));
113 return Task.CompletedTask;
Helps with parsing of commong data types.
static bool TryParseRfc822(string s, out DateTimeOffset Value)
Parses a date and time value encoded according to RFC 822, §5.
Helps with common XML-related tasks.
static bool TryParse(string s, out DateTime Value)
Tries to decode a string encoded DateTime.
Information about content received from the MQTT server.
string DataString
String representation of UTF-8 encoded binary data.
MqttHeader Header
MQTT Header
Contains information about a language.
Task< string > GetStringAsync(Type Type, int Id, string Default)
Gets the string value of a string ID. If no such string exists, a string is created with the default ...
Abstract base class for control parameters.
DateTime control parameter.
Represents an MQTT topic with Date & Time & Offset data.
override Task< DataProcessingResult > DataReported(MqttTopic Topic, MqttContent Content)
Called when new data has been published.
DateTimeOffsetData()
Represents an MQTT topic with Date & Time & Offset data.
override Task StartReadout(ThingReference ThingReference, ISensorReadout Request, string Prefix, bool Last)
Starts a readout of the data.
override void SnifferOutput(ICommunicationLayer Output)
Outputs the parsed data to the sniffer.
override bool IsControllable
TODO
override Grade DefaultSupport
Default support.
override Task< string > GetTypeName(Language Language)
Type name representing data.
override IMqttData CreateNew(MqttTopic Topic, MqttContent Content)
Creates a new instance of the data.
DateTimeOffsetData(MqttTopic Topic, DateTimeOffset Value)
Represents an MQTT topic with Date & Time & Offset data.
override ControlParameter[] GetControlParameters()
TODO
Abstract base class for MQTT data encapsulations.
void Information(ICommunicationLayer Output, string Info)
Outputs information to sniffer.
MqttTopic Topic
Topic used
DateTime Timestamp
Timestamp of data reception.
string Append(string Prefix, string Name)
Appends a name to a topic name.
A Metering node representing an MQTT topic
Represents a date and optional time value.
Contains a reference to a thing
Interface for observable classes implementing communication protocols.
Interface for classes managing sensor data readouts.
Task ReportFields(bool Done, params Field[] Fields)
Report read fields to the client.
Interface for MQTT Data encapsulations
Task< DataProcessingResult > DataReported(MqttTopic Topic, MqttContent Content)
Called when new data has been published.
DataProcessingResult
Results from processing an incoming message.
FieldQoS
Field Quality of Service flags
FieldType
Field Type flags