aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2023-09-14 14:01:24 -0400
committerScott Murray <scott.murray@konsulko.com>2023-09-14 14:37:02 -0400
commitcbbb9f40e283d12f6c52ad28609516f390316f7a (patch)
treed8d2cd8f4641299dd35a3138c0e28f11443928d6
parent5ce59ba69f1451ec18c565b7b18301856553f574 (diff)
Rework to use KUKSA.val databroker gRPC API
Rework to move from the WebSocket API with the older KUKSA.val server to the gRPC "VAL" API of the databroker. Changes include: - All VISS WebSocket API code has been removed, and the signal providers replumbed to be driven by a new VssClient class with a homescreen-specific child class to hold all the gRPC API handling. - The generated code for the VAL API and its dependencies has been checked in under lib/generated, as there still does not seem to be a good way to generate it during the Flutter build. - The configuration file is now expected to be "homescreen.yaml" instead of "homescreen_config.yaml". The authorization token field name has been renamed to "authorization", and there are new "use-tls" and "ca-certificate" configuration fields. TLS is disabled by default for now, and the default CA certificate is /etc/kuksa.val/CA.pem. - Updated .gitignore to cover a couple of generated files that weren't included. Bug-AGL: SPEC-4762, SPEC-4903 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I1b95ed27a72435364d54ec846f2be88e3d8bb092
-rw-r--r--.gitignore4
-rw-r--r--lib/config.dart187
-rw-r--r--lib/generated/google/protobuf/timestamp.pb.dart83
-rw-r--r--lib/generated/google/protobuf/timestamp.pbenum.dart7
-rw-r--r--lib/generated/google/protobuf/timestamp.pbjson.dart21
-rw-r--r--lib/generated/kuksa/val/v1/types.pb.dart1560
-rw-r--r--lib/generated/kuksa/val/v1/types.pbenum.dart159
-rw-r--r--lib/generated/kuksa/val/v1/types.pbjson.dart364
-rw-r--r--lib/generated/kuksa/val/v1/val.pb.dart586
-rw-r--r--lib/generated/kuksa/val/v1/val.pbenum.dart7
-rw-r--r--lib/generated/kuksa/val/v1/val.pbgrpc.dart133
-rw-r--r--lib/generated/kuksa/val/v1/val.pbjson.dart126
-rw-r--r--lib/homescreen.dart32
-rw-r--r--lib/main.dart9
-rw-r--r--lib/vehicle-signals/viss_config.dart29
-rw-r--r--lib/vehicle-signals/viss_connected_widget.dart65
-rw-r--r--lib/vehicle-signals/viss_connection_widget.dart41
-rw-r--r--lib/vehicle-signals/viss_methods.dart116
-rw-r--r--lib/vehicle-signals/vss_client.dart113
-rw-r--r--lib/vehicle-signals/vss_provider.dart75
-rw-r--r--lib/vehicle-signals/vss_signal_providers.dart (renamed from lib/vehicle-signals/vss_providers.dart)32
-rw-r--r--lib/volume_slider.dart11
22 files changed, 3352 insertions, 408 deletions
diff --git a/.gitignore b/.gitignore
index a64b7e1..5075319 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,8 @@
.pub-cache/
.pub/
/build/
+/engine_sdk/
+libapp.so
# Web related
lib/generated_plugin_registrant.dart
@@ -45,5 +47,5 @@ app.*.map.json
/android/app/profile
/android/app/release
-# the linux folder should be present when buikding for AGL
+# the linux folder should be present when building for AGL
linux/
diff --git a/lib/config.dart b/lib/config.dart
index 6da02ed..d3e3936 100644
--- a/lib/config.dart
+++ b/lib/config.dart
@@ -1,115 +1,108 @@
// SPDX-License-Identifier: Apache-2.0
import 'dart:io';
-import 'package:flutter/material.dart';
+import 'package:flutter/foundation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:yaml/yaml.dart';
-import 'vehicle-signals/viss_connection_widget.dart';
+class KuksaConfig {
+ final String hostname;
+ final int port;
+ final String authorization;
+ final bool use_tls;
+ final List<int> ca_certificate;
+ final String tls_server_name;
-class GetConfig extends ConsumerStatefulWidget {
- const GetConfig({Key? key, required this.client}) : super(key: key);
- final HttpClient client;
+ static String configFilePath = '/etc/xdg/AGL/homescreen.yaml';
+ static String defaultHostname = 'localhost';
+ static int defaultPort = 55555;
+ static String defaultCaCertPath = '/etc/kuksa-val/CA.pem';
- @override
- ConsumerState<GetConfig> createState() => _GetConfigState();
+ KuksaConfig({required this.hostname, required this.port, required this.authorization,
+ required this.use_tls, required this.ca_certificate, required this.tls_server_name});
}
-class _GetConfigState extends ConsumerState<GetConfig> {
- @override
- void initState() {
- super.initState();
- WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
- final configStateProvider = ref.read(ConfigStateprovider.notifier);
+// NOTE: This may need to be changed to a FutureProvider to avoid slowing
+// down the top-level widget initState...
- String configFilePath = '/etc/xdg/AGL/homescreen_config.yaml';
+final kuksaConfigProvider = Provider((ref) {
+ final configFile = File(KuksaConfig.configFilePath);
+ try {
+ print("Reading configuration ${KuksaConfig.configFilePath}");
+ String content = configFile.readAsStringSync();
+ final dynamic yamlMap = loadYaml(content);
- final configFile = File(configFilePath);
- configFile.readAsString().then((content) {
- final dynamic yamlMap = loadYaml(content);
- configStateProvider.update(
- read: true,
- hostname: yamlMap['hostname'],
- port: yamlMap['port'],
- kuksaAuthToken: yamlMap['kuskaAuthToken'],
- );
- }).catchError((content) {
- configStateProvider.update(read: true);
- });
- });
- }
+ String hostname = KuksaConfig.defaultHostname;
+ if (yamlMap.containsKey('hostname')) {
+ hostname = yamlMap['hostname'];
+ }
- @override
- Widget build(BuildContext context) {
- final config = ref.watch(ConfigStateprovider);
- if (!config.read) {
- return Container(
- child: const Text("Reading configuration file!",
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.bold,
- color: Colors.white)));
- } else if (config.hostname == "" ||
- config.port == 0 ||
- config.kuksaAuthToken == "") {
- return Container(
- child: const Text("Invalid configuration file!",
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.bold,
- color: Colors.white)));
+ int port = KuksaConfig.defaultPort;
+ if (yamlMap.containsKey('port')) {
+ port = yamlMap['port'];
}
- return VISServerConnectionWidget(client: widget.client);
- }
-}
-class Config {
- Config({
- required this.read,
- required this.hostname,
- required this.port,
- required this.kuksaAuthToken,
- });
- final bool read;
- final String hostname;
- final int port;
- final String kuksaAuthToken;
+ String token = "";
+ if (yamlMap.containsKey('authorization')) {
+ String s = yamlMap['authorization'];
+ if (s.isNotEmpty) {
+ if (s.startsWith("/")) {
+ debugPrint("Reading authorization token $s");
+ try {
+ token = File(s).readAsStringSync();
+ } on Exception catch(_) {
+ print("ERROR: Could not read authorization token file $token");
+ token = "";
+ }
+ } else {
+ token = s;
+ }
+ }
+ }
+ //debugPrint("authorization = $token");
- Config copywith({
- bool? read,
- String? hostname,
- int? port,
- String? kuksaAuthToken,
- }) =>
- Config(
- read: read ?? this.read,
- hostname: hostname ?? this.hostname,
- port: port ?? this.port,
- kuksaAuthToken: kuksaAuthToken ?? this.kuksaAuthToken,
- );
-}
+ bool use_tls = false;
+ if (yamlMap.containsKey('use-tls')) {
+ var value = yamlMap['use-tls'];
+ if (value is bool)
+ use_tls = value;
+ }
+ //debugPrint("Use TLS = $use_tls");
+
+ List<int> ca_cert = [];
+ String ca_path = KuksaConfig.defaultCaCertPath;
+ if (yamlMap.containsKey('ca-certificate')) {
+ ca_path = yamlMap['ca-certificate'];
+ }
+ try {
+ ca_cert = File(ca_path).readAsBytesSync();
+ } on Exception catch(_) {
+ print("ERROR: Could not read CA certificate file $ca_path");
+ ca_cert = [];
+ }
+ //debugPrint("CA cert = $ca_cert");
-final ConfigStateprovider = StateNotifierProvider<ConfigStateNotifier, Config>(
- (ref) => ConfigStateNotifier());
+ String tls_server_name = "";
+ if (yamlMap.containsKey('tls-server-name')) {
+ tls_server_name = yamlMap['tls_server_name'];
+ }
-class ConfigStateNotifier extends StateNotifier<Config> {
- ConfigStateNotifier() : super(_initialValue);
- static final Config _initialValue = Config(
- read: false,
- hostname: "",
- port: 0,
- kuksaAuthToken: "",
- );
- void update({
- bool? read,
- String? hostname,
- int? port,
- String? kuksaAuthToken,
- }) {
- state = state.copywith(
- read: read,
- hostname: hostname,
- port: port,
- kuksaAuthToken: kuksaAuthToken,
- );
+ return KuksaConfig(
+ hostname: hostname,
+ port: port,
+ authorization: token,
+ use_tls: use_tls,
+ ca_certificate: ca_cert,
+ tls_server_name: tls_server_name
+ );
+ } on Exception catch(_) {
+ return KuksaConfig(
+ hostname: KuksaConfig.defaultHostname,
+ port: KuksaConfig.defaultPort,
+ authorization: "",
+ use_tls: false,
+ ca_certificate: [],
+ tls_server_name: ""
+ );
}
-}
+});
+
diff --git a/lib/generated/google/protobuf/timestamp.pb.dart b/lib/generated/google/protobuf/timestamp.pb.dart
new file mode 100644
index 0000000..ca4a49a
--- /dev/null
+++ b/lib/generated/google/protobuf/timestamp.pb.dart
@@ -0,0 +1,83 @@
+///
+// Generated code. Do not modify.
+// source: google/protobuf/timestamp.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+
+import 'package:fixnum/fixnum.dart' as $fixnum;
+import 'package:protobuf/protobuf.dart' as $pb;
+
+import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin;
+
+class Timestamp extends $pb.GeneratedMessage with $mixin.TimestampMixin {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Timestamp', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'google.protobuf'), createEmptyInstance: create, toProto3Json: $mixin.TimestampMixin.toProto3JsonHelper, fromProto3Json: $mixin.TimestampMixin.fromProto3JsonHelper)
+ ..aInt64(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'seconds')
+ ..a<$core.int>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'nanos', $pb.PbFieldType.O3)
+ ..hasRequiredFields = false
+ ;
+
+ Timestamp._() : super();
+ factory Timestamp({
+ $fixnum.Int64? seconds,
+ $core.int? nanos,
+ }) {
+ final _result = create();
+ if (seconds != null) {
+ _result.seconds = seconds;
+ }
+ if (nanos != null) {
+ _result.nanos = nanos;
+ }
+ return _result;
+ }
+ factory Timestamp.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Timestamp.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Timestamp clone() => Timestamp()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Timestamp copyWith(void Function(Timestamp) updates) => super.copyWith((message) => updates(message as Timestamp)) as Timestamp; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Timestamp create() => Timestamp._();
+ Timestamp createEmptyInstance() => create();
+ static $pb.PbList<Timestamp> createRepeated() => $pb.PbList<Timestamp>();
+ @$core.pragma('dart2js:noInline')
+ static Timestamp getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Timestamp>(create);
+ static Timestamp? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $fixnum.Int64 get seconds => $_getI64(0);
+ @$pb.TagNumber(1)
+ set seconds($fixnum.Int64 v) { $_setInt64(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasSeconds() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearSeconds() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $core.int get nanos => $_getIZ(1);
+ @$pb.TagNumber(2)
+ set nanos($core.int v) { $_setSignedInt32(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasNanos() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearNanos() => clearField(2);
+ /// Creates a new instance from [dateTime].
+ ///
+ /// Time zone information will not be preserved.
+ static Timestamp fromDateTime($core.DateTime dateTime) {
+ final result = create();
+ $mixin.TimestampMixin.setFromDateTime(result, dateTime);
+ return result;
+ }
+}
+
diff --git a/lib/generated/google/protobuf/timestamp.pbenum.dart b/lib/generated/google/protobuf/timestamp.pbenum.dart
new file mode 100644
index 0000000..9d127fd
--- /dev/null
+++ b/lib/generated/google/protobuf/timestamp.pbenum.dart
@@ -0,0 +1,7 @@
+///
+// Generated code. Do not modify.
+// source: google/protobuf/timestamp.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
diff --git a/lib/generated/google/protobuf/timestamp.pbjson.dart b/lib/generated/google/protobuf/timestamp.pbjson.dart
new file mode 100644
index 0000000..421f785
--- /dev/null
+++ b/lib/generated/google/protobuf/timestamp.pbjson.dart
@@ -0,0 +1,21 @@
+///
+// Generated code. Do not modify.
+// source: google/protobuf/timestamp.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+@$core.Deprecated('Use timestampDescriptor instead')
+const Timestamp$json = const {
+ '1': 'Timestamp',
+ '2': const [
+ const {'1': 'seconds', '3': 1, '4': 1, '5': 3, '10': 'seconds'},
+ const {'1': 'nanos', '3': 2, '4': 1, '5': 5, '10': 'nanos'},
+ ],
+};
+
+/// Descriptor for `Timestamp`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List timestampDescriptor = $convert.base64Decode('CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3M=');
diff --git a/lib/generated/kuksa/val/v1/types.pb.dart b/lib/generated/kuksa/val/v1/types.pb.dart
new file mode 100644
index 0000000..17bcbb3
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/types.pb.dart
@@ -0,0 +1,1560 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/types.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+
+import 'package:fixnum/fixnum.dart' as $fixnum;
+import 'package:protobuf/protobuf.dart' as $pb;
+
+import '../../../google/protobuf/timestamp.pb.dart' as $0;
+
+import 'types.pbenum.dart';
+
+export 'types.pbenum.dart';
+
+class DataEntry extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DataEntry', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'path')
+ ..aOM<Datapoint>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', subBuilder: Datapoint.create)
+ ..aOM<Datapoint>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'actuatorTarget', subBuilder: Datapoint.create)
+ ..aOM<Metadata>(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'metadata', subBuilder: Metadata.create)
+ ..hasRequiredFields = false
+ ;
+
+ DataEntry._() : super();
+ factory DataEntry({
+ $core.String? path,
+ Datapoint? value,
+ Datapoint? actuatorTarget,
+ Metadata? metadata,
+ }) {
+ final _result = create();
+ if (path != null) {
+ _result.path = path;
+ }
+ if (value != null) {
+ _result.value = value;
+ }
+ if (actuatorTarget != null) {
+ _result.actuatorTarget = actuatorTarget;
+ }
+ if (metadata != null) {
+ _result.metadata = metadata;
+ }
+ return _result;
+ }
+ factory DataEntry.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory DataEntry.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ DataEntry clone() => DataEntry()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ DataEntry copyWith(void Function(DataEntry) updates) => super.copyWith((message) => updates(message as DataEntry)) as DataEntry; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static DataEntry create() => DataEntry._();
+ DataEntry createEmptyInstance() => create();
+ static $pb.PbList<DataEntry> createRepeated() => $pb.PbList<DataEntry>();
+ @$core.pragma('dart2js:noInline')
+ static DataEntry getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DataEntry>(create);
+ static DataEntry? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.String get path => $_getSZ(0);
+ @$pb.TagNumber(1)
+ set path($core.String v) { $_setString(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasPath() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearPath() => clearField(1);
+
+ @$pb.TagNumber(2)
+ Datapoint get value => $_getN(1);
+ @$pb.TagNumber(2)
+ set value(Datapoint v) { setField(2, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasValue() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearValue() => clearField(2);
+ @$pb.TagNumber(2)
+ Datapoint ensureValue() => $_ensure(1);
+
+ @$pb.TagNumber(3)
+ Datapoint get actuatorTarget => $_getN(2);
+ @$pb.TagNumber(3)
+ set actuatorTarget(Datapoint v) { setField(3, v); }
+ @$pb.TagNumber(3)
+ $core.bool hasActuatorTarget() => $_has(2);
+ @$pb.TagNumber(3)
+ void clearActuatorTarget() => clearField(3);
+ @$pb.TagNumber(3)
+ Datapoint ensureActuatorTarget() => $_ensure(2);
+
+ @$pb.TagNumber(10)
+ Metadata get metadata => $_getN(3);
+ @$pb.TagNumber(10)
+ set metadata(Metadata v) { setField(10, v); }
+ @$pb.TagNumber(10)
+ $core.bool hasMetadata() => $_has(3);
+ @$pb.TagNumber(10)
+ void clearMetadata() => clearField(10);
+ @$pb.TagNumber(10)
+ Metadata ensureMetadata() => $_ensure(3);
+}
+
+enum Datapoint_Value {
+ string,
+ bool_12,
+ int32,
+ int64,
+ uint32,
+ uint64,
+ float,
+ double_18,
+ stringArray,
+ boolArray,
+ int32Array,
+ int64Array,
+ uint32Array,
+ uint64Array,
+ floatArray,
+ doubleArray,
+ notSet
+}
+
+class Datapoint extends $pb.GeneratedMessage {
+ static const $core.Map<$core.int, Datapoint_Value> _Datapoint_ValueByTag = {
+ 11 : Datapoint_Value.string,
+ 12 : Datapoint_Value.bool_12,
+ 13 : Datapoint_Value.int32,
+ 14 : Datapoint_Value.int64,
+ 15 : Datapoint_Value.uint32,
+ 16 : Datapoint_Value.uint64,
+ 17 : Datapoint_Value.float,
+ 18 : Datapoint_Value.double_18,
+ 21 : Datapoint_Value.stringArray,
+ 22 : Datapoint_Value.boolArray,
+ 23 : Datapoint_Value.int32Array,
+ 24 : Datapoint_Value.int64Array,
+ 25 : Datapoint_Value.uint32Array,
+ 26 : Datapoint_Value.uint64Array,
+ 27 : Datapoint_Value.floatArray,
+ 28 : Datapoint_Value.doubleArray,
+ 0 : Datapoint_Value.notSet
+ };
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Datapoint', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..oo(0, [11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28])
+ ..aOM<$0.Timestamp>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'timestamp', subBuilder: $0.Timestamp.create)
+ ..aOS(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'string')
+ ..aOB(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'bool')
+ ..a<$core.int>(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'int32', $pb.PbFieldType.OS3)
+ ..a<$fixnum.Int64>(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'int64', $pb.PbFieldType.OS6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..a<$core.int>(15, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uint32', $pb.PbFieldType.OU3)
+ ..a<$fixnum.Int64>(16, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uint64', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..a<$core.double>(17, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'float', $pb.PbFieldType.OF)
+ ..a<$core.double>(18, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'double', $pb.PbFieldType.OD)
+ ..aOM<StringArray>(21, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'stringArray', subBuilder: StringArray.create)
+ ..aOM<BoolArray>(22, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'boolArray', subBuilder: BoolArray.create)
+ ..aOM<Int32Array>(23, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'int32Array', subBuilder: Int32Array.create)
+ ..aOM<Int64Array>(24, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'int64Array', subBuilder: Int64Array.create)
+ ..aOM<Uint32Array>(25, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uint32Array', subBuilder: Uint32Array.create)
+ ..aOM<Uint64Array>(26, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uint64Array', subBuilder: Uint64Array.create)
+ ..aOM<FloatArray>(27, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'floatArray', subBuilder: FloatArray.create)
+ ..aOM<DoubleArray>(28, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'doubleArray', subBuilder: DoubleArray.create)
+ ..hasRequiredFields = false
+ ;
+
+ Datapoint._() : super();
+ factory Datapoint({
+ $0.Timestamp? timestamp,
+ $core.String? string,
+ $core.bool? bool_12,
+ $core.int? int32,
+ $fixnum.Int64? int64,
+ $core.int? uint32,
+ $fixnum.Int64? uint64,
+ $core.double? float,
+ $core.double? double_18,
+ StringArray? stringArray,
+ BoolArray? boolArray,
+ Int32Array? int32Array,
+ Int64Array? int64Array,
+ Uint32Array? uint32Array,
+ Uint64Array? uint64Array,
+ FloatArray? floatArray,
+ DoubleArray? doubleArray,
+ }) {
+ final _result = create();
+ if (timestamp != null) {
+ _result.timestamp = timestamp;
+ }
+ if (string != null) {
+ _result.string = string;
+ }
+ if (bool_12 != null) {
+ _result.bool_12 = bool_12;
+ }
+ if (int32 != null) {
+ _result.int32 = int32;
+ }
+ if (int64 != null) {
+ _result.int64 = int64;
+ }
+ if (uint32 != null) {
+ _result.uint32 = uint32;
+ }
+ if (uint64 != null) {
+ _result.uint64 = uint64;
+ }
+ if (float != null) {
+ _result.float = float;
+ }
+ if (double_18 != null) {
+ _result.double_18 = double_18;
+ }
+ if (stringArray != null) {
+ _result.stringArray = stringArray;
+ }
+ if (boolArray != null) {
+ _result.boolArray = boolArray;
+ }
+ if (int32Array != null) {
+ _result.int32Array = int32Array;
+ }
+ if (int64Array != null) {
+ _result.int64Array = int64Array;
+ }
+ if (uint32Array != null) {
+ _result.uint32Array = uint32Array;
+ }
+ if (uint64Array != null) {
+ _result.uint64Array = uint64Array;
+ }
+ if (floatArray != null) {
+ _result.floatArray = floatArray;
+ }
+ if (doubleArray != null) {
+ _result.doubleArray = doubleArray;
+ }
+ return _result;
+ }
+ factory Datapoint.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Datapoint.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Datapoint clone() => Datapoint()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Datapoint copyWith(void Function(Datapoint) updates) => super.copyWith((message) => updates(message as Datapoint)) as Datapoint; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Datapoint create() => Datapoint._();
+ Datapoint createEmptyInstance() => create();
+ static $pb.PbList<Datapoint> createRepeated() => $pb.PbList<Datapoint>();
+ @$core.pragma('dart2js:noInline')
+ static Datapoint getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Datapoint>(create);
+ static Datapoint? _defaultInstance;
+
+ Datapoint_Value whichValue() => _Datapoint_ValueByTag[$_whichOneof(0)]!;
+ void clearValue() => clearField($_whichOneof(0));
+
+ @$pb.TagNumber(1)
+ $0.Timestamp get timestamp => $_getN(0);
+ @$pb.TagNumber(1)
+ set timestamp($0.Timestamp v) { setField(1, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasTimestamp() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearTimestamp() => clearField(1);
+ @$pb.TagNumber(1)
+ $0.Timestamp ensureTimestamp() => $_ensure(0);
+
+ @$pb.TagNumber(11)
+ $core.String get string => $_getSZ(1);
+ @$pb.TagNumber(11)
+ set string($core.String v) { $_setString(1, v); }
+ @$pb.TagNumber(11)
+ $core.bool hasString() => $_has(1);
+ @$pb.TagNumber(11)
+ void clearString() => clearField(11);
+
+ @$pb.TagNumber(12)
+ $core.bool get bool_12 => $_getBF(2);
+ @$pb.TagNumber(12)
+ set bool_12($core.bool v) { $_setBool(2, v); }
+ @$pb.TagNumber(12)
+ $core.bool hasBool_12() => $_has(2);
+ @$pb.TagNumber(12)
+ void clearBool_12() => clearField(12);
+
+ @$pb.TagNumber(13)
+ $core.int get int32 => $_getIZ(3);
+ @$pb.TagNumber(13)
+ set int32($core.int v) { $_setSignedInt32(3, v); }
+ @$pb.TagNumber(13)
+ $core.bool hasInt32() => $_has(3);
+ @$pb.TagNumber(13)
+ void clearInt32() => clearField(13);
+
+ @$pb.TagNumber(14)
+ $fixnum.Int64 get int64 => $_getI64(4);
+ @$pb.TagNumber(14)
+ set int64($fixnum.Int64 v) { $_setInt64(4, v); }
+ @$pb.TagNumber(14)
+ $core.bool hasInt64() => $_has(4);
+ @$pb.TagNumber(14)
+ void clearInt64() => clearField(14);
+
+ @$pb.TagNumber(15)
+ $core.int get uint32 => $_getIZ(5);
+ @$pb.TagNumber(15)
+ set uint32($core.int v) { $_setUnsignedInt32(5, v); }
+ @$pb.TagNumber(15)
+ $core.bool hasUint32() => $_has(5);
+ @$pb.TagNumber(15)
+ void clearUint32() => clearField(15);
+
+ @$pb.TagNumber(16)
+ $fixnum.Int64 get uint64 => $_getI64(6);
+ @$pb.TagNumber(16)
+ set uint64($fixnum.Int64 v) { $_setInt64(6, v); }
+ @$pb.TagNumber(16)
+ $core.bool hasUint64() => $_has(6);
+ @$pb.TagNumber(16)
+ void clearUint64() => clearField(16);
+
+ @$pb.TagNumber(17)
+ $core.double get float => $_getN(7);
+ @$pb.TagNumber(17)
+ set float($core.double v) { $_setFloat(7, v); }
+ @$pb.TagNumber(17)
+ $core.bool hasFloat() => $_has(7);
+ @$pb.TagNumber(17)
+ void clearFloat() => clearField(17);
+
+ @$pb.TagNumber(18)
+ $core.double get double_18 => $_getN(8);
+ @$pb.TagNumber(18)
+ set double_18($core.double v) { $_setDouble(8, v); }
+ @$pb.TagNumber(18)
+ $core.bool hasDouble_18() => $_has(8);
+ @$pb.TagNumber(18)
+ void clearDouble_18() => clearField(18);
+
+ @$pb.TagNumber(21)
+ StringArray get stringArray => $_getN(9);
+ @$pb.TagNumber(21)
+ set stringArray(StringArray v) { setField(21, v); }
+ @$pb.TagNumber(21)
+ $core.bool hasStringArray() => $_has(9);
+ @$pb.TagNumber(21)
+ void clearStringArray() => clearField(21);
+ @$pb.TagNumber(21)
+ StringArray ensureStringArray() => $_ensure(9);
+
+ @$pb.TagNumber(22)
+ BoolArray get boolArray => $_getN(10);
+ @$pb.TagNumber(22)
+ set boolArray(BoolArray v) { setField(22, v); }
+ @$pb.TagNumber(22)
+ $core.bool hasBoolArray() => $_has(10);
+ @$pb.TagNumber(22)
+ void clearBoolArray() => clearField(22);
+ @$pb.TagNumber(22)
+ BoolArray ensureBoolArray() => $_ensure(10);
+
+ @$pb.TagNumber(23)
+ Int32Array get int32Array => $_getN(11);
+ @$pb.TagNumber(23)
+ set int32Array(Int32Array v) { setField(23, v); }
+ @$pb.TagNumber(23)
+ $core.bool hasInt32Array() => $_has(11);
+ @$pb.TagNumber(23)
+ void clearInt32Array() => clearField(23);
+ @$pb.TagNumber(23)
+ Int32Array ensureInt32Array() => $_ensure(11);
+
+ @$pb.TagNumber(24)
+ Int64Array get int64Array => $_getN(12);
+ @$pb.TagNumber(24)
+ set int64Array(Int64Array v) { setField(24, v); }
+ @$pb.TagNumber(24)
+ $core.bool hasInt64Array() => $_has(12);
+ @$pb.TagNumber(24)
+ void clearInt64Array() => clearField(24);
+ @$pb.TagNumber(24)
+ Int64Array ensureInt64Array() => $_ensure(12);
+
+ @$pb.TagNumber(25)
+ Uint32Array get uint32Array => $_getN(13);
+ @$pb.TagNumber(25)
+ set uint32Array(Uint32Array v) { setField(25, v); }
+ @$pb.TagNumber(25)
+ $core.bool hasUint32Array() => $_has(13);
+ @$pb.TagNumber(25)
+ void clearUint32Array() => clearField(25);
+ @$pb.TagNumber(25)
+ Uint32Array ensureUint32Array() => $_ensure(13);
+
+ @$pb.TagNumber(26)
+ Uint64Array get uint64Array => $_getN(14);
+ @$pb.TagNumber(26)
+ set uint64Array(Uint64Array v) { setField(26, v); }
+ @$pb.TagNumber(26)
+ $core.bool hasUint64Array() => $_has(14);
+ @$pb.TagNumber(26)
+ void clearUint64Array() => clearField(26);
+ @$pb.TagNumber(26)
+ Uint64Array ensureUint64Array() => $_ensure(14);
+
+ @$pb.TagNumber(27)
+ FloatArray get floatArray => $_getN(15);
+ @$pb.TagNumber(27)
+ set floatArray(FloatArray v) { setField(27, v); }
+ @$pb.TagNumber(27)
+ $core.bool hasFloatArray() => $_has(15);
+ @$pb.TagNumber(27)
+ void clearFloatArray() => clearField(27);
+ @$pb.TagNumber(27)
+ FloatArray ensureFloatArray() => $_ensure(15);
+
+ @$pb.TagNumber(28)
+ DoubleArray get doubleArray => $_getN(16);
+ @$pb.TagNumber(28)
+ set doubleArray(DoubleArray v) { setField(28, v); }
+ @$pb.TagNumber(28)
+ $core.bool hasDoubleArray() => $_has(16);
+ @$pb.TagNumber(28)
+ void clearDoubleArray() => clearField(28);
+ @$pb.TagNumber(28)
+ DoubleArray ensureDoubleArray() => $_ensure(16);
+}
+
+enum Metadata_EntrySpecific {
+ actuator,
+ sensor,
+ attribute,
+ notSet
+}
+
+class Metadata extends $pb.GeneratedMessage {
+ static const $core.Map<$core.int, Metadata_EntrySpecific> _Metadata_EntrySpecificByTag = {
+ 20 : Metadata_EntrySpecific.actuator,
+ 30 : Metadata_EntrySpecific.sensor,
+ 40 : Metadata_EntrySpecific.attribute,
+ 0 : Metadata_EntrySpecific.notSet
+ };
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Metadata', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..oo(0, [20, 30, 40])
+ ..e<DataType>(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'dataType', $pb.PbFieldType.OE, defaultOrMaker: DataType.DATA_TYPE_UNSPECIFIED, valueOf: DataType.valueOf, enumValues: DataType.values)
+ ..e<EntryType>(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'entryType', $pb.PbFieldType.OE, defaultOrMaker: EntryType.ENTRY_TYPE_UNSPECIFIED, valueOf: EntryType.valueOf, enumValues: EntryType.values)
+ ..aOS(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'description')
+ ..aOS(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'comment')
+ ..aOS(15, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'deprecation')
+ ..aOS(16, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'unit')
+ ..aOM<ValueRestriction>(17, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'valueRestriction', subBuilder: ValueRestriction.create)
+ ..aOM<Actuator>(20, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'actuator', subBuilder: Actuator.create)
+ ..aOM<Sensor>(30, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sensor', subBuilder: Sensor.create)
+ ..aOM<Attribute>(40, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'attribute', subBuilder: Attribute.create)
+ ..hasRequiredFields = false
+ ;
+
+ Metadata._() : super();
+ factory Metadata({
+ DataType? dataType,
+ EntryType? entryType,
+ $core.String? description,
+ $core.String? comment,
+ $core.String? deprecation,
+ $core.String? unit,
+ ValueRestriction? valueRestriction,
+ Actuator? actuator,
+ Sensor? sensor,
+ Attribute? attribute,
+ }) {
+ final _result = create();
+ if (dataType != null) {
+ _result.dataType = dataType;
+ }
+ if (entryType != null) {
+ _result.entryType = entryType;
+ }
+ if (description != null) {
+ _result.description = description;
+ }
+ if (comment != null) {
+ _result.comment = comment;
+ }
+ if (deprecation != null) {
+ _result.deprecation = deprecation;
+ }
+ if (unit != null) {
+ _result.unit = unit;
+ }
+ if (valueRestriction != null) {
+ _result.valueRestriction = valueRestriction;
+ }
+ if (actuator != null) {
+ _result.actuator = actuator;
+ }
+ if (sensor != null) {
+ _result.sensor = sensor;
+ }
+ if (attribute != null) {
+ _result.attribute = attribute;
+ }
+ return _result;
+ }
+ factory Metadata.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Metadata.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Metadata clone() => Metadata()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Metadata copyWith(void Function(Metadata) updates) => super.copyWith((message) => updates(message as Metadata)) as Metadata; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Metadata create() => Metadata._();
+ Metadata createEmptyInstance() => create();
+ static $pb.PbList<Metadata> createRepeated() => $pb.PbList<Metadata>();
+ @$core.pragma('dart2js:noInline')
+ static Metadata getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Metadata>(create);
+ static Metadata? _defaultInstance;
+
+ Metadata_EntrySpecific whichEntrySpecific() => _Metadata_EntrySpecificByTag[$_whichOneof(0)]!;
+ void clearEntrySpecific() => clearField($_whichOneof(0));
+
+ @$pb.TagNumber(11)
+ DataType get dataType => $_getN(0);
+ @$pb.TagNumber(11)
+ set dataType(DataType v) { setField(11, v); }
+ @$pb.TagNumber(11)
+ $core.bool hasDataType() => $_has(0);
+ @$pb.TagNumber(11)
+ void clearDataType() => clearField(11);
+
+ @$pb.TagNumber(12)
+ EntryType get entryType => $_getN(1);
+ @$pb.TagNumber(12)
+ set entryType(EntryType v) { setField(12, v); }
+ @$pb.TagNumber(12)
+ $core.bool hasEntryType() => $_has(1);
+ @$pb.TagNumber(12)
+ void clearEntryType() => clearField(12);
+
+ @$pb.TagNumber(13)
+ $core.String get description => $_getSZ(2);
+ @$pb.TagNumber(13)
+ set description($core.String v) { $_setString(2, v); }
+ @$pb.TagNumber(13)
+ $core.bool hasDescription() => $_has(2);
+ @$pb.TagNumber(13)
+ void clearDescription() => clearField(13);
+
+ @$pb.TagNumber(14)
+ $core.String get comment => $_getSZ(3);
+ @$pb.TagNumber(14)
+ set comment($core.String v) { $_setString(3, v); }
+ @$pb.TagNumber(14)
+ $core.bool hasComment() => $_has(3);
+ @$pb.TagNumber(14)
+ void clearComment() => clearField(14);
+
+ @$pb.TagNumber(15)
+ $core.String get deprecation => $_getSZ(4);
+ @$pb.TagNumber(15)
+ set deprecation($core.String v) { $_setString(4, v); }
+ @$pb.TagNumber(15)
+ $core.bool hasDeprecation() => $_has(4);
+ @$pb.TagNumber(15)
+ void clearDeprecation() => clearField(15);
+
+ @$pb.TagNumber(16)
+ $core.String get unit => $_getSZ(5);
+ @$pb.TagNumber(16)
+ set unit($core.String v) { $_setString(5, v); }
+ @$pb.TagNumber(16)
+ $core.bool hasUnit() => $_has(5);
+ @$pb.TagNumber(16)
+ void clearUnit() => clearField(16);
+
+ @$pb.TagNumber(17)
+ ValueRestriction get valueRestriction => $_getN(6);
+ @$pb.TagNumber(17)
+ set valueRestriction(ValueRestriction v) { setField(17, v); }
+ @$pb.TagNumber(17)
+ $core.bool hasValueRestriction() => $_has(6);
+ @$pb.TagNumber(17)
+ void clearValueRestriction() => clearField(17);
+ @$pb.TagNumber(17)
+ ValueRestriction ensureValueRestriction() => $_ensure(6);
+
+ @$pb.TagNumber(20)
+ Actuator get actuator => $_getN(7);
+ @$pb.TagNumber(20)
+ set actuator(Actuator v) { setField(20, v); }
+ @$pb.TagNumber(20)
+ $core.bool hasActuator() => $_has(7);
+ @$pb.TagNumber(20)
+ void clearActuator() => clearField(20);
+ @$pb.TagNumber(20)
+ Actuator ensureActuator() => $_ensure(7);
+
+ @$pb.TagNumber(30)
+ Sensor get sensor => $_getN(8);
+ @$pb.TagNumber(30)
+ set sensor(Sensor v) { setField(30, v); }
+ @$pb.TagNumber(30)
+ $core.bool hasSensor() => $_has(8);
+ @$pb.TagNumber(30)
+ void clearSensor() => clearField(30);
+ @$pb.TagNumber(30)
+ Sensor ensureSensor() => $_ensure(8);
+
+ @$pb.TagNumber(40)
+ Attribute get attribute => $_getN(9);
+ @$pb.TagNumber(40)
+ set attribute(Attribute v) { setField(40, v); }
+ @$pb.TagNumber(40)
+ $core.bool hasAttribute() => $_has(9);
+ @$pb.TagNumber(40)
+ void clearAttribute() => clearField(40);
+ @$pb.TagNumber(40)
+ Attribute ensureAttribute() => $_ensure(9);
+}
+
+class Actuator extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Actuator', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..hasRequiredFields = false
+ ;
+
+ Actuator._() : super();
+ factory Actuator() => create();
+ factory Actuator.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Actuator.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Actuator clone() => Actuator()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Actuator copyWith(void Function(Actuator) updates) => super.copyWith((message) => updates(message as Actuator)) as Actuator; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Actuator create() => Actuator._();
+ Actuator createEmptyInstance() => create();
+ static $pb.PbList<Actuator> createRepeated() => $pb.PbList<Actuator>();
+ @$core.pragma('dart2js:noInline')
+ static Actuator getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Actuator>(create);
+ static Actuator? _defaultInstance;
+}
+
+class Sensor extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Sensor', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..hasRequiredFields = false
+ ;
+
+ Sensor._() : super();
+ factory Sensor() => create();
+ factory Sensor.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Sensor.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Sensor clone() => Sensor()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Sensor copyWith(void Function(Sensor) updates) => super.copyWith((message) => updates(message as Sensor)) as Sensor; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Sensor create() => Sensor._();
+ Sensor createEmptyInstance() => create();
+ static $pb.PbList<Sensor> createRepeated() => $pb.PbList<Sensor>();
+ @$core.pragma('dart2js:noInline')
+ static Sensor getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Sensor>(create);
+ static Sensor? _defaultInstance;
+}
+
+class Attribute extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Attribute', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..hasRequiredFields = false
+ ;
+
+ Attribute._() : super();
+ factory Attribute() => create();
+ factory Attribute.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Attribute.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Attribute clone() => Attribute()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Attribute copyWith(void Function(Attribute) updates) => super.copyWith((message) => updates(message as Attribute)) as Attribute; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Attribute create() => Attribute._();
+ Attribute createEmptyInstance() => create();
+ static $pb.PbList<Attribute> createRepeated() => $pb.PbList<Attribute>();
+ @$core.pragma('dart2js:noInline')
+ static Attribute getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Attribute>(create);
+ static Attribute? _defaultInstance;
+}
+
+enum ValueRestriction_Type {
+ string,
+ signed,
+ unsigned,
+ floatingPoint,
+ notSet
+}
+
+class ValueRestriction extends $pb.GeneratedMessage {
+ static const $core.Map<$core.int, ValueRestriction_Type> _ValueRestriction_TypeByTag = {
+ 21 : ValueRestriction_Type.string,
+ 22 : ValueRestriction_Type.signed,
+ 23 : ValueRestriction_Type.unsigned,
+ 24 : ValueRestriction_Type.floatingPoint,
+ 0 : ValueRestriction_Type.notSet
+ };
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ValueRestriction', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..oo(0, [21, 22, 23, 24])
+ ..aOM<ValueRestrictionString>(21, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'string', subBuilder: ValueRestrictionString.create)
+ ..aOM<ValueRestrictionInt>(22, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'signed', subBuilder: ValueRestrictionInt.create)
+ ..aOM<ValueRestrictionUint>(23, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'unsigned', subBuilder: ValueRestrictionUint.create)
+ ..aOM<ValueRestrictionFloat>(24, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'floatingPoint', subBuilder: ValueRestrictionFloat.create)
+ ..hasRequiredFields = false
+ ;
+
+ ValueRestriction._() : super();
+ factory ValueRestriction({
+ ValueRestrictionString? string,
+ ValueRestrictionInt? signed,
+ ValueRestrictionUint? unsigned,
+ ValueRestrictionFloat? floatingPoint,
+ }) {
+ final _result = create();
+ if (string != null) {
+ _result.string = string;
+ }
+ if (signed != null) {
+ _result.signed = signed;
+ }
+ if (unsigned != null) {
+ _result.unsigned = unsigned;
+ }
+ if (floatingPoint != null) {
+ _result.floatingPoint = floatingPoint;
+ }
+ return _result;
+ }
+ factory ValueRestriction.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory ValueRestriction.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ ValueRestriction clone() => ValueRestriction()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ ValueRestriction copyWith(void Function(ValueRestriction) updates) => super.copyWith((message) => updates(message as ValueRestriction)) as ValueRestriction; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static ValueRestriction create() => ValueRestriction._();
+ ValueRestriction createEmptyInstance() => create();
+ static $pb.PbList<ValueRestriction> createRepeated() => $pb.PbList<ValueRestriction>();
+ @$core.pragma('dart2js:noInline')
+ static ValueRestriction getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ValueRestriction>(create);
+ static ValueRestriction? _defaultInstance;
+
+ ValueRestriction_Type whichType() => _ValueRestriction_TypeByTag[$_whichOneof(0)]!;
+ void clearType() => clearField($_whichOneof(0));
+
+ @$pb.TagNumber(21)
+ ValueRestrictionString get string => $_getN(0);
+ @$pb.TagNumber(21)
+ set string(ValueRestrictionString v) { setField(21, v); }
+ @$pb.TagNumber(21)
+ $core.bool hasString() => $_has(0);
+ @$pb.TagNumber(21)
+ void clearString() => clearField(21);
+ @$pb.TagNumber(21)
+ ValueRestrictionString ensureString() => $_ensure(0);
+
+ @$pb.TagNumber(22)
+ ValueRestrictionInt get signed => $_getN(1);
+ @$pb.TagNumber(22)
+ set signed(ValueRestrictionInt v) { setField(22, v); }
+ @$pb.TagNumber(22)
+ $core.bool hasSigned() => $_has(1);
+ @$pb.TagNumber(22)
+ void clearSigned() => clearField(22);
+ @$pb.TagNumber(22)
+ ValueRestrictionInt ensureSigned() => $_ensure(1);
+
+ @$pb.TagNumber(23)
+ ValueRestrictionUint get unsigned => $_getN(2);
+ @$pb.TagNumber(23)
+ set unsigned(ValueRestrictionUint v) { setField(23, v); }
+ @$pb.TagNumber(23)
+ $core.bool hasUnsigned() => $_has(2);
+ @$pb.TagNumber(23)
+ void clearUnsigned() => clearField(23);
+ @$pb.TagNumber(23)
+ ValueRestrictionUint ensureUnsigned() => $_ensure(2);
+
+ @$pb.TagNumber(24)
+ ValueRestrictionFloat get floatingPoint => $_getN(3);
+ @$pb.TagNumber(24)
+ set floatingPoint(ValueRestrictionFloat v) { setField(24, v); }
+ @$pb.TagNumber(24)
+ $core.bool hasFloatingPoint() => $_has(3);
+ @$pb.TagNumber(24)
+ void clearFloatingPoint() => clearField(24);
+ @$pb.TagNumber(24)
+ ValueRestrictionFloat ensureFloatingPoint() => $_ensure(3);
+}
+
+class ValueRestrictionInt extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ValueRestrictionInt', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..a<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'min', $pb.PbFieldType.OS6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..a<$fixnum.Int64>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'max', $pb.PbFieldType.OS6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..p<$fixnum.Int64>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'allowedValues', $pb.PbFieldType.KS6)
+ ..hasRequiredFields = false
+ ;
+
+ ValueRestrictionInt._() : super();
+ factory ValueRestrictionInt({
+ $fixnum.Int64? min,
+ $fixnum.Int64? max,
+ $core.Iterable<$fixnum.Int64>? allowedValues,
+ }) {
+ final _result = create();
+ if (min != null) {
+ _result.min = min;
+ }
+ if (max != null) {
+ _result.max = max;
+ }
+ if (allowedValues != null) {
+ _result.allowedValues.addAll(allowedValues);
+ }
+ return _result;
+ }
+ factory ValueRestrictionInt.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory ValueRestrictionInt.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionInt clone() => ValueRestrictionInt()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionInt copyWith(void Function(ValueRestrictionInt) updates) => super.copyWith((message) => updates(message as ValueRestrictionInt)) as ValueRestrictionInt; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionInt create() => ValueRestrictionInt._();
+ ValueRestrictionInt createEmptyInstance() => create();
+ static $pb.PbList<ValueRestrictionInt> createRepeated() => $pb.PbList<ValueRestrictionInt>();
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionInt getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ValueRestrictionInt>(create);
+ static ValueRestrictionInt? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $fixnum.Int64 get min => $_getI64(0);
+ @$pb.TagNumber(1)
+ set min($fixnum.Int64 v) { $_setInt64(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasMin() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearMin() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $fixnum.Int64 get max => $_getI64(1);
+ @$pb.TagNumber(2)
+ set max($fixnum.Int64 v) { $_setInt64(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasMax() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearMax() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.List<$fixnum.Int64> get allowedValues => $_getList(2);
+}
+
+class ValueRestrictionUint extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ValueRestrictionUint', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..a<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'min', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..a<$fixnum.Int64>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'max', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO)
+ ..p<$fixnum.Int64>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'allowedValues', $pb.PbFieldType.KU6)
+ ..hasRequiredFields = false
+ ;
+
+ ValueRestrictionUint._() : super();
+ factory ValueRestrictionUint({
+ $fixnum.Int64? min,
+ $fixnum.Int64? max,
+ $core.Iterable<$fixnum.Int64>? allowedValues,
+ }) {
+ final _result = create();
+ if (min != null) {
+ _result.min = min;
+ }
+ if (max != null) {
+ _result.max = max;
+ }
+ if (allowedValues != null) {
+ _result.allowedValues.addAll(allowedValues);
+ }
+ return _result;
+ }
+ factory ValueRestrictionUint.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory ValueRestrictionUint.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionUint clone() => ValueRestrictionUint()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionUint copyWith(void Function(ValueRestrictionUint) updates) => super.copyWith((message) => updates(message as ValueRestrictionUint)) as ValueRestrictionUint; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionUint create() => ValueRestrictionUint._();
+ ValueRestrictionUint createEmptyInstance() => create();
+ static $pb.PbList<ValueRestrictionUint> createRepeated() => $pb.PbList<ValueRestrictionUint>();
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionUint getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ValueRestrictionUint>(create);
+ static ValueRestrictionUint? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $fixnum.Int64 get min => $_getI64(0);
+ @$pb.TagNumber(1)
+ set min($fixnum.Int64 v) { $_setInt64(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasMin() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearMin() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $fixnum.Int64 get max => $_getI64(1);
+ @$pb.TagNumber(2)
+ set max($fixnum.Int64 v) { $_setInt64(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasMax() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearMax() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.List<$fixnum.Int64> get allowedValues => $_getList(2);
+}
+
+class ValueRestrictionFloat extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ValueRestrictionFloat', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..a<$core.double>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'min', $pb.PbFieldType.OD)
+ ..a<$core.double>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'max', $pb.PbFieldType.OD)
+ ..p<$core.double>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'allowedValues', $pb.PbFieldType.KD)
+ ..hasRequiredFields = false
+ ;
+
+ ValueRestrictionFloat._() : super();
+ factory ValueRestrictionFloat({
+ $core.double? min,
+ $core.double? max,
+ $core.Iterable<$core.double>? allowedValues,
+ }) {
+ final _result = create();
+ if (min != null) {
+ _result.min = min;
+ }
+ if (max != null) {
+ _result.max = max;
+ }
+ if (allowedValues != null) {
+ _result.allowedValues.addAll(allowedValues);
+ }
+ return _result;
+ }
+ factory ValueRestrictionFloat.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory ValueRestrictionFloat.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionFloat clone() => ValueRestrictionFloat()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionFloat copyWith(void Function(ValueRestrictionFloat) updates) => super.copyWith((message) => updates(message as ValueRestrictionFloat)) as ValueRestrictionFloat; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionFloat create() => ValueRestrictionFloat._();
+ ValueRestrictionFloat createEmptyInstance() => create();
+ static $pb.PbList<ValueRestrictionFloat> createRepeated() => $pb.PbList<ValueRestrictionFloat>();
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionFloat getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ValueRestrictionFloat>(create);
+ static ValueRestrictionFloat? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.double get min => $_getN(0);
+ @$pb.TagNumber(1)
+ set min($core.double v) { $_setDouble(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasMin() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearMin() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $core.double get max => $_getN(1);
+ @$pb.TagNumber(2)
+ set max($core.double v) { $_setDouble(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasMax() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearMax() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.List<$core.double> get allowedValues => $_getList(2);
+}
+
+class ValueRestrictionString extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ValueRestrictionString', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pPS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'allowedValues')
+ ..hasRequiredFields = false
+ ;
+
+ ValueRestrictionString._() : super();
+ factory ValueRestrictionString({
+ $core.Iterable<$core.String>? allowedValues,
+ }) {
+ final _result = create();
+ if (allowedValues != null) {
+ _result.allowedValues.addAll(allowedValues);
+ }
+ return _result;
+ }
+ factory ValueRestrictionString.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory ValueRestrictionString.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionString clone() => ValueRestrictionString()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ ValueRestrictionString copyWith(void Function(ValueRestrictionString) updates) => super.copyWith((message) => updates(message as ValueRestrictionString)) as ValueRestrictionString; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionString create() => ValueRestrictionString._();
+ ValueRestrictionString createEmptyInstance() => create();
+ static $pb.PbList<ValueRestrictionString> createRepeated() => $pb.PbList<ValueRestrictionString>();
+ @$core.pragma('dart2js:noInline')
+ static ValueRestrictionString getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ValueRestrictionString>(create);
+ static ValueRestrictionString? _defaultInstance;
+
+ @$pb.TagNumber(3)
+ $core.List<$core.String> get allowedValues => $_getList(0);
+}
+
+class Error extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Error', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..a<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OU3)
+ ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'reason')
+ ..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'message')
+ ..hasRequiredFields = false
+ ;
+
+ Error._() : super();
+ factory Error({
+ $core.int? code,
+ $core.String? reason,
+ $core.String? message,
+ }) {
+ final _result = create();
+ if (code != null) {
+ _result.code = code;
+ }
+ if (reason != null) {
+ _result.reason = reason;
+ }
+ if (message != null) {
+ _result.message = message;
+ }
+ return _result;
+ }
+ factory Error.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Error.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Error clone() => Error()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Error copyWith(void Function(Error) updates) => super.copyWith((message) => updates(message as Error)) as Error; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Error create() => Error._();
+ Error createEmptyInstance() => create();
+ static $pb.PbList<Error> createRepeated() => $pb.PbList<Error>();
+ @$core.pragma('dart2js:noInline')
+ static Error getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Error>(create);
+ static Error? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.int get code => $_getIZ(0);
+ @$pb.TagNumber(1)
+ set code($core.int v) { $_setUnsignedInt32(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasCode() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearCode() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $core.String get reason => $_getSZ(1);
+ @$pb.TagNumber(2)
+ set reason($core.String v) { $_setString(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasReason() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearReason() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.String get message => $_getSZ(2);
+ @$pb.TagNumber(3)
+ set message($core.String v) { $_setString(2, v); }
+ @$pb.TagNumber(3)
+ $core.bool hasMessage() => $_has(2);
+ @$pb.TagNumber(3)
+ void clearMessage() => clearField(3);
+}
+
+class DataEntryError extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DataEntryError', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'path')
+ ..aOM<Error>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'error', subBuilder: Error.create)
+ ..hasRequiredFields = false
+ ;
+
+ DataEntryError._() : super();
+ factory DataEntryError({
+ $core.String? path,
+ Error? error,
+ }) {
+ final _result = create();
+ if (path != null) {
+ _result.path = path;
+ }
+ if (error != null) {
+ _result.error = error;
+ }
+ return _result;
+ }
+ factory DataEntryError.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory DataEntryError.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ DataEntryError clone() => DataEntryError()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ DataEntryError copyWith(void Function(DataEntryError) updates) => super.copyWith((message) => updates(message as DataEntryError)) as DataEntryError; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static DataEntryError create() => DataEntryError._();
+ DataEntryError createEmptyInstance() => create();
+ static $pb.PbList<DataEntryError> createRepeated() => $pb.PbList<DataEntryError>();
+ @$core.pragma('dart2js:noInline')
+ static DataEntryError getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DataEntryError>(create);
+ static DataEntryError? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.String get path => $_getSZ(0);
+ @$pb.TagNumber(1)
+ set path($core.String v) { $_setString(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasPath() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearPath() => clearField(1);
+
+ @$pb.TagNumber(2)
+ Error get error => $_getN(1);
+ @$pb.TagNumber(2)
+ set error(Error v) { setField(2, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasError() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearError() => clearField(2);
+ @$pb.TagNumber(2)
+ Error ensureError() => $_ensure(1);
+}
+
+class StringArray extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StringArray', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values')
+ ..hasRequiredFields = false
+ ;
+
+ StringArray._() : super();
+ factory StringArray({
+ $core.Iterable<$core.String>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory StringArray.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory StringArray.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ StringArray clone() => StringArray()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ StringArray copyWith(void Function(StringArray) updates) => super.copyWith((message) => updates(message as StringArray)) as StringArray; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static StringArray create() => StringArray._();
+ StringArray createEmptyInstance() => create();
+ static $pb.PbList<StringArray> createRepeated() => $pb.PbList<StringArray>();
+ @$core.pragma('dart2js:noInline')
+ static StringArray getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<StringArray>(create);
+ static StringArray? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.String> get values => $_getList(0);
+}
+
+class BoolArray extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'BoolArray', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$core.bool>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KB)
+ ..hasRequiredFields = false
+ ;
+
+ BoolArray._() : super();
+ factory BoolArray({
+ $core.Iterable<$core.bool>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory BoolArray.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory BoolArray.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ BoolArray clone() => BoolArray()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ BoolArray copyWith(void Function(BoolArray) updates) => super.copyWith((message) => updates(message as BoolArray)) as BoolArray; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static BoolArray create() => BoolArray._();
+ BoolArray createEmptyInstance() => create();
+ static $pb.PbList<BoolArray> createRepeated() => $pb.PbList<BoolArray>();
+ @$core.pragma('dart2js:noInline')
+ static BoolArray getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<BoolArray>(create);
+ static BoolArray? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.bool> get values => $_getList(0);
+}
+
+class Int32Array extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Int32Array', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KS3)
+ ..hasRequiredFields = false
+ ;
+
+ Int32Array._() : super();
+ factory Int32Array({
+ $core.Iterable<$core.int>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory Int32Array.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Int32Array.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Int32Array clone() => Int32Array()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Int32Array copyWith(void Function(Int32Array) updates) => super.copyWith((message) => updates(message as Int32Array)) as Int32Array; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Int32Array create() => Int32Array._();
+ Int32Array createEmptyInstance() => create();
+ static $pb.PbList<Int32Array> createRepeated() => $pb.PbList<Int32Array>();
+ @$core.pragma('dart2js:noInline')
+ static Int32Array getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Int32Array>(create);
+ static Int32Array? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.int> get values => $_getList(0);
+}
+
+class Int64Array extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Int64Array', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KS6)
+ ..hasRequiredFields = false
+ ;
+
+ Int64Array._() : super();
+ factory Int64Array({
+ $core.Iterable<$fixnum.Int64>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory Int64Array.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Int64Array.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Int64Array clone() => Int64Array()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Int64Array copyWith(void Function(Int64Array) updates) => super.copyWith((message) => updates(message as Int64Array)) as Int64Array; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Int64Array create() => Int64Array._();
+ Int64Array createEmptyInstance() => create();
+ static $pb.PbList<Int64Array> createRepeated() => $pb.PbList<Int64Array>();
+ @$core.pragma('dart2js:noInline')
+ static Int64Array getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Int64Array>(create);
+ static Int64Array? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$fixnum.Int64> get values => $_getList(0);
+}
+
+class Uint32Array extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Uint32Array', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KU3)
+ ..hasRequiredFields = false
+ ;
+
+ Uint32Array._() : super();
+ factory Uint32Array({
+ $core.Iterable<$core.int>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory Uint32Array.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Uint32Array.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Uint32Array clone() => Uint32Array()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Uint32Array copyWith(void Function(Uint32Array) updates) => super.copyWith((message) => updates(message as Uint32Array)) as Uint32Array; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Uint32Array create() => Uint32Array._();
+ Uint32Array createEmptyInstance() => create();
+ static $pb.PbList<Uint32Array> createRepeated() => $pb.PbList<Uint32Array>();
+ @$core.pragma('dart2js:noInline')
+ static Uint32Array getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Uint32Array>(create);
+ static Uint32Array? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.int> get values => $_getList(0);
+}
+
+class Uint64Array extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Uint64Array', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KU6)
+ ..hasRequiredFields = false
+ ;
+
+ Uint64Array._() : super();
+ factory Uint64Array({
+ $core.Iterable<$fixnum.Int64>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory Uint64Array.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory Uint64Array.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ Uint64Array clone() => Uint64Array()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ Uint64Array copyWith(void Function(Uint64Array) updates) => super.copyWith((message) => updates(message as Uint64Array)) as Uint64Array; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static Uint64Array create() => Uint64Array._();
+ Uint64Array createEmptyInstance() => create();
+ static $pb.PbList<Uint64Array> createRepeated() => $pb.PbList<Uint64Array>();
+ @$core.pragma('dart2js:noInline')
+ static Uint64Array getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Uint64Array>(create);
+ static Uint64Array? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$fixnum.Int64> get values => $_getList(0);
+}
+
+class FloatArray extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'FloatArray', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$core.double>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KF)
+ ..hasRequiredFields = false
+ ;
+
+ FloatArray._() : super();
+ factory FloatArray({
+ $core.Iterable<$core.double>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory FloatArray.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory FloatArray.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ FloatArray clone() => FloatArray()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ FloatArray copyWith(void Function(FloatArray) updates) => super.copyWith((message) => updates(message as FloatArray)) as FloatArray; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static FloatArray create() => FloatArray._();
+ FloatArray createEmptyInstance() => create();
+ static $pb.PbList<FloatArray> createRepeated() => $pb.PbList<FloatArray>();
+ @$core.pragma('dart2js:noInline')
+ static FloatArray getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<FloatArray>(create);
+ static FloatArray? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.double> get values => $_getList(0);
+}
+
+class DoubleArray extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DoubleArray', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..p<$core.double>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'values', $pb.PbFieldType.KD)
+ ..hasRequiredFields = false
+ ;
+
+ DoubleArray._() : super();
+ factory DoubleArray({
+ $core.Iterable<$core.double>? values,
+ }) {
+ final _result = create();
+ if (values != null) {
+ _result.values.addAll(values);
+ }
+ return _result;
+ }
+ factory DoubleArray.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory DoubleArray.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ DoubleArray clone() => DoubleArray()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ DoubleArray copyWith(void Function(DoubleArray) updates) => super.copyWith((message) => updates(message as DoubleArray)) as DoubleArray; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static DoubleArray create() => DoubleArray._();
+ DoubleArray createEmptyInstance() => create();
+ static $pb.PbList<DoubleArray> createRepeated() => $pb.PbList<DoubleArray>();
+ @$core.pragma('dart2js:noInline')
+ static DoubleArray getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DoubleArray>(create);
+ static DoubleArray? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$core.double> get values => $_getList(0);
+}
+
diff --git a/lib/generated/kuksa/val/v1/types.pbenum.dart b/lib/generated/kuksa/val/v1/types.pbenum.dart
new file mode 100644
index 0000000..745d50a
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/types.pbenum.dart
@@ -0,0 +1,159 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/types.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+// ignore_for_file: UNDEFINED_SHOWN_NAME
+import 'dart:core' as $core;
+import 'package:protobuf/protobuf.dart' as $pb;
+
+class DataType extends $pb.ProtobufEnum {
+ static const DataType DATA_TYPE_UNSPECIFIED = DataType._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UNSPECIFIED');
+ static const DataType DATA_TYPE_STRING = DataType._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_STRING');
+ static const DataType DATA_TYPE_BOOLEAN = DataType._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_BOOLEAN');
+ static const DataType DATA_TYPE_INT8 = DataType._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT8');
+ static const DataType DATA_TYPE_INT16 = DataType._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT16');
+ static const DataType DATA_TYPE_INT32 = DataType._(5, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT32');
+ static const DataType DATA_TYPE_INT64 = DataType._(6, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT64');
+ static const DataType DATA_TYPE_UINT8 = DataType._(7, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT8');
+ static const DataType DATA_TYPE_UINT16 = DataType._(8, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT16');
+ static const DataType DATA_TYPE_UINT32 = DataType._(9, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT32');
+ static const DataType DATA_TYPE_UINT64 = DataType._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT64');
+ static const DataType DATA_TYPE_FLOAT = DataType._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_FLOAT');
+ static const DataType DATA_TYPE_DOUBLE = DataType._(12, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_DOUBLE');
+ static const DataType DATA_TYPE_TIMESTAMP = DataType._(13, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_TIMESTAMP');
+ static const DataType DATA_TYPE_STRING_ARRAY = DataType._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_STRING_ARRAY');
+ static const DataType DATA_TYPE_BOOLEAN_ARRAY = DataType._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_BOOLEAN_ARRAY');
+ static const DataType DATA_TYPE_INT8_ARRAY = DataType._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT8_ARRAY');
+ static const DataType DATA_TYPE_INT16_ARRAY = DataType._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT16_ARRAY');
+ static const DataType DATA_TYPE_INT32_ARRAY = DataType._(24, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT32_ARRAY');
+ static const DataType DATA_TYPE_INT64_ARRAY = DataType._(25, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_INT64_ARRAY');
+ static const DataType DATA_TYPE_UINT8_ARRAY = DataType._(26, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT8_ARRAY');
+ static const DataType DATA_TYPE_UINT16_ARRAY = DataType._(27, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT16_ARRAY');
+ static const DataType DATA_TYPE_UINT32_ARRAY = DataType._(28, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT32_ARRAY');
+ static const DataType DATA_TYPE_UINT64_ARRAY = DataType._(29, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_UINT64_ARRAY');
+ static const DataType DATA_TYPE_FLOAT_ARRAY = DataType._(30, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_FLOAT_ARRAY');
+ static const DataType DATA_TYPE_DOUBLE_ARRAY = DataType._(31, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_DOUBLE_ARRAY');
+ static const DataType DATA_TYPE_TIMESTAMP_ARRAY = DataType._(32, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA_TYPE_TIMESTAMP_ARRAY');
+
+ static const $core.List<DataType> values = <DataType> [
+ DATA_TYPE_UNSPECIFIED,
+ DATA_TYPE_STRING,
+ DATA_TYPE_BOOLEAN,
+ DATA_TYPE_INT8,
+ DATA_TYPE_INT16,
+ DATA_TYPE_INT32,
+ DATA_TYPE_INT64,
+ DATA_TYPE_UINT8,
+ DATA_TYPE_UINT16,
+ DATA_TYPE_UINT32,
+ DATA_TYPE_UINT64,
+ DATA_TYPE_FLOAT,
+ DATA_TYPE_DOUBLE,
+ DATA_TYPE_TIMESTAMP,
+ DATA_TYPE_STRING_ARRAY,
+ DATA_TYPE_BOOLEAN_ARRAY,
+ DATA_TYPE_INT8_ARRAY,
+ DATA_TYPE_INT16_ARRAY,
+ DATA_TYPE_INT32_ARRAY,
+ DATA_TYPE_INT64_ARRAY,
+ DATA_TYPE_UINT8_ARRAY,
+ DATA_TYPE_UINT16_ARRAY,
+ DATA_TYPE_UINT32_ARRAY,
+ DATA_TYPE_UINT64_ARRAY,
+ DATA_TYPE_FLOAT_ARRAY,
+ DATA_TYPE_DOUBLE_ARRAY,
+ DATA_TYPE_TIMESTAMP_ARRAY,
+ ];
+
+ static final $core.Map<$core.int, DataType> _byValue = $pb.ProtobufEnum.initByValue(values);
+ static DataType? valueOf($core.int value) => _byValue[value];
+
+ const DataType._($core.int v, $core.String n) : super(v, n);
+}
+
+class EntryType extends $pb.ProtobufEnum {
+ static const EntryType ENTRY_TYPE_UNSPECIFIED = EntryType._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ENTRY_TYPE_UNSPECIFIED');
+ static const EntryType ENTRY_TYPE_ATTRIBUTE = EntryType._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ENTRY_TYPE_ATTRIBUTE');
+ static const EntryType ENTRY_TYPE_SENSOR = EntryType._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ENTRY_TYPE_SENSOR');
+ static const EntryType ENTRY_TYPE_ACTUATOR = EntryType._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ENTRY_TYPE_ACTUATOR');
+
+ static const $core.List<EntryType> values = <EntryType> [
+ ENTRY_TYPE_UNSPECIFIED,
+ ENTRY_TYPE_ATTRIBUTE,
+ ENTRY_TYPE_SENSOR,
+ ENTRY_TYPE_ACTUATOR,
+ ];
+
+ static final $core.Map<$core.int, EntryType> _byValue = $pb.ProtobufEnum.initByValue(values);
+ static EntryType? valueOf($core.int value) => _byValue[value];
+
+ const EntryType._($core.int v, $core.String n) : super(v, n);
+}
+
+class View extends $pb.ProtobufEnum {
+ static const View VIEW_UNSPECIFIED = View._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_UNSPECIFIED');
+ static const View VIEW_CURRENT_VALUE = View._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_CURRENT_VALUE');
+ static const View VIEW_TARGET_VALUE = View._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_TARGET_VALUE');
+ static const View VIEW_METADATA = View._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_METADATA');
+ static const View VIEW_FIELDS = View._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_FIELDS');
+ static const View VIEW_ALL = View._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIEW_ALL');
+
+ static const $core.List<View> values = <View> [
+ VIEW_UNSPECIFIED,
+ VIEW_CURRENT_VALUE,
+ VIEW_TARGET_VALUE,
+ VIEW_METADATA,
+ VIEW_FIELDS,
+ VIEW_ALL,
+ ];
+
+ static final $core.Map<$core.int, View> _byValue = $pb.ProtobufEnum.initByValue(values);
+ static View? valueOf($core.int value) => _byValue[value];
+
+ const View._($core.int v, $core.String n) : super(v, n);
+}
+
+class Field extends $pb.ProtobufEnum {
+ static const Field FIELD_UNSPECIFIED = Field._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_UNSPECIFIED');
+ static const Field FIELD_PATH = Field._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_PATH');
+ static const Field FIELD_VALUE = Field._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_VALUE');
+ static const Field FIELD_ACTUATOR_TARGET = Field._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_ACTUATOR_TARGET');
+ static const Field FIELD_METADATA = Field._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA');
+ static const Field FIELD_METADATA_DATA_TYPE = Field._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_DATA_TYPE');
+ static const Field FIELD_METADATA_DESCRIPTION = Field._(12, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_DESCRIPTION');
+ static const Field FIELD_METADATA_ENTRY_TYPE = Field._(13, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_ENTRY_TYPE');
+ static const Field FIELD_METADATA_COMMENT = Field._(14, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_COMMENT');
+ static const Field FIELD_METADATA_DEPRECATION = Field._(15, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_DEPRECATION');
+ static const Field FIELD_METADATA_UNIT = Field._(16, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_UNIT');
+ static const Field FIELD_METADATA_VALUE_RESTRICTION = Field._(17, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_VALUE_RESTRICTION');
+ static const Field FIELD_METADATA_ACTUATOR = Field._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_ACTUATOR');
+ static const Field FIELD_METADATA_SENSOR = Field._(30, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_SENSOR');
+ static const Field FIELD_METADATA_ATTRIBUTE = Field._(40, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'FIELD_METADATA_ATTRIBUTE');
+
+ static const $core.List<Field> values = <Field> [
+ FIELD_UNSPECIFIED,
+ FIELD_PATH,
+ FIELD_VALUE,
+ FIELD_ACTUATOR_TARGET,
+ FIELD_METADATA,
+ FIELD_METADATA_DATA_TYPE,
+ FIELD_METADATA_DESCRIPTION,
+ FIELD_METADATA_ENTRY_TYPE,
+ FIELD_METADATA_COMMENT,
+ FIELD_METADATA_DEPRECATION,
+ FIELD_METADATA_UNIT,
+ FIELD_METADATA_VALUE_RESTRICTION,
+ FIELD_METADATA_ACTUATOR,
+ FIELD_METADATA_SENSOR,
+ FIELD_METADATA_ATTRIBUTE,
+ ];
+
+ static final $core.Map<$core.int, Field> _byValue = $pb.ProtobufEnum.initByValue(values);
+ static Field? valueOf($core.int value) => _byValue[value];
+
+ const Field._($core.int v, $core.String n) : super(v, n);
+}
+
diff --git a/lib/generated/kuksa/val/v1/types.pbjson.dart b/lib/generated/kuksa/val/v1/types.pbjson.dart
new file mode 100644
index 0000000..063631a
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/types.pbjson.dart
@@ -0,0 +1,364 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/types.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+@$core.Deprecated('Use dataTypeDescriptor instead')
+const DataType$json = const {
+ '1': 'DataType',
+ '2': const [
+ const {'1': 'DATA_TYPE_UNSPECIFIED', '2': 0},
+ const {'1': 'DATA_TYPE_STRING', '2': 1},
+ const {'1': 'DATA_TYPE_BOOLEAN', '2': 2},
+ const {'1': 'DATA_TYPE_INT8', '2': 3},
+ const {'1': 'DATA_TYPE_INT16', '2': 4},
+ const {'1': 'DATA_TYPE_INT32', '2': 5},
+ const {'1': 'DATA_TYPE_INT64', '2': 6},
+ const {'1': 'DATA_TYPE_UINT8', '2': 7},
+ const {'1': 'DATA_TYPE_UINT16', '2': 8},
+ const {'1': 'DATA_TYPE_UINT32', '2': 9},
+ const {'1': 'DATA_TYPE_UINT64', '2': 10},
+ const {'1': 'DATA_TYPE_FLOAT', '2': 11},
+ const {'1': 'DATA_TYPE_DOUBLE', '2': 12},
+ const {'1': 'DATA_TYPE_TIMESTAMP', '2': 13},
+ const {'1': 'DATA_TYPE_STRING_ARRAY', '2': 20},
+ const {'1': 'DATA_TYPE_BOOLEAN_ARRAY', '2': 21},
+ const {'1': 'DATA_TYPE_INT8_ARRAY', '2': 22},
+ const {'1': 'DATA_TYPE_INT16_ARRAY', '2': 23},
+ const {'1': 'DATA_TYPE_INT32_ARRAY', '2': 24},
+ const {'1': 'DATA_TYPE_INT64_ARRAY', '2': 25},
+ const {'1': 'DATA_TYPE_UINT8_ARRAY', '2': 26},
+ const {'1': 'DATA_TYPE_UINT16_ARRAY', '2': 27},
+ const {'1': 'DATA_TYPE_UINT32_ARRAY', '2': 28},
+ const {'1': 'DATA_TYPE_UINT64_ARRAY', '2': 29},
+ const {'1': 'DATA_TYPE_FLOAT_ARRAY', '2': 30},
+ const {'1': 'DATA_TYPE_DOUBLE_ARRAY', '2': 31},
+ const {'1': 'DATA_TYPE_TIMESTAMP_ARRAY', '2': 32},
+ ],
+};
+
+/// Descriptor for `DataType`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List dataTypeDescriptor = $convert.base64Decode('CghEYXRhVHlwZRIZChVEQVRBX1RZUEVfVU5TUEVDSUZJRUQQABIUChBEQVRBX1RZUEVfU1RSSU5HEAESFQoRREFUQV9UWVBFX0JPT0xFQU4QAhISCg5EQVRBX1RZUEVfSU5UOBADEhMKD0RBVEFfVFlQRV9JTlQxNhAEEhMKD0RBVEFfVFlQRV9JTlQzMhAFEhMKD0RBVEFfVFlQRV9JTlQ2NBAGEhMKD0RBVEFfVFlQRV9VSU5UOBAHEhQKEERBVEFfVFlQRV9VSU5UMTYQCBIUChBEQVRBX1RZUEVfVUlOVDMyEAkSFAoQREFUQV9UWVBFX1VJTlQ2NBAKEhMKD0RBVEFfVFlQRV9GTE9BVBALEhQKEERBVEFfVFlQRV9ET1VCTEUQDBIXChNEQVRBX1RZUEVfVElNRVNUQU1QEA0SGgoWREFUQV9UWVBFX1NUUklOR19BUlJBWRAUEhsKF0RBVEFfVFlQRV9CT09MRUFOX0FSUkFZEBUSGAoUREFUQV9UWVBFX0lOVDhfQVJSQVkQFhIZChVEQVRBX1RZUEVfSU5UMTZfQVJSQVkQFxIZChVEQVRBX1RZUEVfSU5UMzJfQVJSQVkQGBIZChVEQVRBX1RZUEVfSU5UNjRfQVJSQVkQGRIZChVEQVRBX1RZUEVfVUlOVDhfQVJSQVkQGhIaChZEQVRBX1RZUEVfVUlOVDE2X0FSUkFZEBsSGgoWREFUQV9UWVBFX1VJTlQzMl9BUlJBWRAcEhoKFkRBVEFfVFlQRV9VSU5UNjRfQVJSQVkQHRIZChVEQVRBX1RZUEVfRkxPQVRfQVJSQVkQHhIaChZEQVRBX1RZUEVfRE9VQkxFX0FSUkFZEB8SHQoZREFUQV9UWVBFX1RJTUVTVEFNUF9BUlJBWRAg');
+@$core.Deprecated('Use entryTypeDescriptor instead')
+const EntryType$json = const {
+ '1': 'EntryType',
+ '2': const [
+ const {'1': 'ENTRY_TYPE_UNSPECIFIED', '2': 0},
+ const {'1': 'ENTRY_TYPE_ATTRIBUTE', '2': 1},
+ const {'1': 'ENTRY_TYPE_SENSOR', '2': 2},
+ const {'1': 'ENTRY_TYPE_ACTUATOR', '2': 3},
+ ],
+};
+
+/// Descriptor for `EntryType`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List entryTypeDescriptor = $convert.base64Decode('CglFbnRyeVR5cGUSGgoWRU5UUllfVFlQRV9VTlNQRUNJRklFRBAAEhgKFEVOVFJZX1RZUEVfQVRUUklCVVRFEAESFQoRRU5UUllfVFlQRV9TRU5TT1IQAhIXChNFTlRSWV9UWVBFX0FDVFVBVE9SEAM=');
+@$core.Deprecated('Use viewDescriptor instead')
+const View$json = const {
+ '1': 'View',
+ '2': const [
+ const {'1': 'VIEW_UNSPECIFIED', '2': 0},
+ const {'1': 'VIEW_CURRENT_VALUE', '2': 1},
+ const {'1': 'VIEW_TARGET_VALUE', '2': 2},
+ const {'1': 'VIEW_METADATA', '2': 3},
+ const {'1': 'VIEW_FIELDS', '2': 10},
+ const {'1': 'VIEW_ALL', '2': 20},
+ ],
+};
+
+/// Descriptor for `View`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List viewDescriptor = $convert.base64Decode('CgRWaWV3EhQKEFZJRVdfVU5TUEVDSUZJRUQQABIWChJWSUVXX0NVUlJFTlRfVkFMVUUQARIVChFWSUVXX1RBUkdFVF9WQUxVRRACEhEKDVZJRVdfTUVUQURBVEEQAxIPCgtWSUVXX0ZJRUxEUxAKEgwKCFZJRVdfQUxMEBQ=');
+@$core.Deprecated('Use fieldDescriptor instead')
+const Field$json = const {
+ '1': 'Field',
+ '2': const [
+ const {'1': 'FIELD_UNSPECIFIED', '2': 0},
+ const {'1': 'FIELD_PATH', '2': 1},
+ const {'1': 'FIELD_VALUE', '2': 2},
+ const {'1': 'FIELD_ACTUATOR_TARGET', '2': 3},
+ const {'1': 'FIELD_METADATA', '2': 10},
+ const {'1': 'FIELD_METADATA_DATA_TYPE', '2': 11},
+ const {'1': 'FIELD_METADATA_DESCRIPTION', '2': 12},
+ const {'1': 'FIELD_METADATA_ENTRY_TYPE', '2': 13},
+ const {'1': 'FIELD_METADATA_COMMENT', '2': 14},
+ const {'1': 'FIELD_METADATA_DEPRECATION', '2': 15},
+ const {'1': 'FIELD_METADATA_UNIT', '2': 16},
+ const {'1': 'FIELD_METADATA_VALUE_RESTRICTION', '2': 17},
+ const {'1': 'FIELD_METADATA_ACTUATOR', '2': 20},
+ const {'1': 'FIELD_METADATA_SENSOR', '2': 30},
+ const {'1': 'FIELD_METADATA_ATTRIBUTE', '2': 40},
+ ],
+};
+
+/// Descriptor for `Field`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List fieldDescriptor = $convert.base64Decode('CgVGaWVsZBIVChFGSUVMRF9VTlNQRUNJRklFRBAAEg4KCkZJRUxEX1BBVEgQARIPCgtGSUVMRF9WQUxVRRACEhkKFUZJRUxEX0FDVFVBVE9SX1RBUkdFVBADEhIKDkZJRUxEX01FVEFEQVRBEAoSHAoYRklFTERfTUVUQURBVEFfREFUQV9UWVBFEAsSHgoaRklFTERfTUVUQURBVEFfREVTQ1JJUFRJT04QDBIdChlGSUVMRF9NRVRBREFUQV9FTlRSWV9UWVBFEA0SGgoWRklFTERfTUVUQURBVEFfQ09NTUVOVBAOEh4KGkZJRUxEX01FVEFEQVRBX0RFUFJFQ0FUSU9OEA8SFwoTRklFTERfTUVUQURBVEFfVU5JVBAQEiQKIEZJRUxEX01FVEFEQVRBX1ZBTFVFX1JFU1RSSUNUSU9OEBESGwoXRklFTERfTUVUQURBVEFfQUNUVUFUT1IQFBIZChVGSUVMRF9NRVRBREFUQV9TRU5TT1IQHhIcChhGSUVMRF9NRVRBREFUQV9BVFRSSUJVVEUQKA==');
+@$core.Deprecated('Use dataEntryDescriptor instead')
+const DataEntry$json = const {
+ '1': 'DataEntry',
+ '2': const [
+ const {'1': 'path', '3': 1, '4': 1, '5': 9, '10': 'path'},
+ const {'1': 'value', '3': 2, '4': 1, '5': 11, '6': '.kuksa.val.v1.Datapoint', '10': 'value'},
+ const {'1': 'actuator_target', '3': 3, '4': 1, '5': 11, '6': '.kuksa.val.v1.Datapoint', '10': 'actuatorTarget'},
+ const {'1': 'metadata', '3': 10, '4': 1, '5': 11, '6': '.kuksa.val.v1.Metadata', '10': 'metadata'},
+ ],
+};
+
+/// Descriptor for `DataEntry`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List dataEntryDescriptor = $convert.base64Decode('CglEYXRhRW50cnkSEgoEcGF0aBgBIAEoCVIEcGF0aBItCgV2YWx1ZRgCIAEoCzIXLmt1a3NhLnZhbC52MS5EYXRhcG9pbnRSBXZhbHVlEkAKD2FjdHVhdG9yX3RhcmdldBgDIAEoCzIXLmt1a3NhLnZhbC52MS5EYXRhcG9pbnRSDmFjdHVhdG9yVGFyZ2V0EjIKCG1ldGFkYXRhGAogASgLMhYua3Vrc2EudmFsLnYxLk1ldGFkYXRhUghtZXRhZGF0YQ==');
+@$core.Deprecated('Use datapointDescriptor instead')
+const Datapoint$json = const {
+ '1': 'Datapoint',
+ '2': const [
+ const {'1': 'timestamp', '3': 1, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'timestamp'},
+ const {'1': 'string', '3': 11, '4': 1, '5': 9, '9': 0, '10': 'string'},
+ const {'1': 'bool', '3': 12, '4': 1, '5': 8, '9': 0, '10': 'bool'},
+ const {'1': 'int32', '3': 13, '4': 1, '5': 17, '9': 0, '10': 'int32'},
+ const {'1': 'int64', '3': 14, '4': 1, '5': 18, '9': 0, '10': 'int64'},
+ const {'1': 'uint32', '3': 15, '4': 1, '5': 13, '9': 0, '10': 'uint32'},
+ const {'1': 'uint64', '3': 16, '4': 1, '5': 4, '9': 0, '10': 'uint64'},
+ const {'1': 'float', '3': 17, '4': 1, '5': 2, '9': 0, '10': 'float'},
+ const {'1': 'double', '3': 18, '4': 1, '5': 1, '9': 0, '10': 'double'},
+ const {'1': 'string_array', '3': 21, '4': 1, '5': 11, '6': '.kuksa.val.v1.StringArray', '9': 0, '10': 'stringArray'},
+ const {'1': 'bool_array', '3': 22, '4': 1, '5': 11, '6': '.kuksa.val.v1.BoolArray', '9': 0, '10': 'boolArray'},
+ const {'1': 'int32_array', '3': 23, '4': 1, '5': 11, '6': '.kuksa.val.v1.Int32Array', '9': 0, '10': 'int32Array'},
+ const {'1': 'int64_array', '3': 24, '4': 1, '5': 11, '6': '.kuksa.val.v1.Int64Array', '9': 0, '10': 'int64Array'},
+ const {'1': 'uint32_array', '3': 25, '4': 1, '5': 11, '6': '.kuksa.val.v1.Uint32Array', '9': 0, '10': 'uint32Array'},
+ const {'1': 'uint64_array', '3': 26, '4': 1, '5': 11, '6': '.kuksa.val.v1.Uint64Array', '9': 0, '10': 'uint64Array'},
+ const {'1': 'float_array', '3': 27, '4': 1, '5': 11, '6': '.kuksa.val.v1.FloatArray', '9': 0, '10': 'floatArray'},
+ const {'1': 'double_array', '3': 28, '4': 1, '5': 11, '6': '.kuksa.val.v1.DoubleArray', '9': 0, '10': 'doubleArray'},
+ ],
+ '8': const [
+ const {'1': 'value'},
+ ],
+};
+
+/// Descriptor for `Datapoint`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List datapointDescriptor = $convert.base64Decode('CglEYXRhcG9pbnQSOAoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIJdGltZXN0YW1wEhgKBnN0cmluZxgLIAEoCUgAUgZzdHJpbmcSFAoEYm9vbBgMIAEoCEgAUgRib29sEhYKBWludDMyGA0gASgRSABSBWludDMyEhYKBWludDY0GA4gASgSSABSBWludDY0EhgKBnVpbnQzMhgPIAEoDUgAUgZ1aW50MzISGAoGdWludDY0GBAgASgESABSBnVpbnQ2NBIWCgVmbG9hdBgRIAEoAkgAUgVmbG9hdBIYCgZkb3VibGUYEiABKAFIAFIGZG91YmxlEj4KDHN0cmluZ19hcnJheRgVIAEoCzIZLmt1a3NhLnZhbC52MS5TdHJpbmdBcnJheUgAUgtzdHJpbmdBcnJheRI4Cgpib29sX2FycmF5GBYgASgLMhcua3Vrc2EudmFsLnYxLkJvb2xBcnJheUgAUglib29sQXJyYXkSOwoLaW50MzJfYXJyYXkYFyABKAsyGC5rdWtzYS52YWwudjEuSW50MzJBcnJheUgAUgppbnQzMkFycmF5EjsKC2ludDY0X2FycmF5GBggASgLMhgua3Vrc2EudmFsLnYxLkludDY0QXJyYXlIAFIKaW50NjRBcnJheRI+Cgx1aW50MzJfYXJyYXkYGSABKAsyGS5rdWtzYS52YWwudjEuVWludDMyQXJyYXlIAFILdWludDMyQXJyYXkSPgoMdWludDY0X2FycmF5GBogASgLMhkua3Vrc2EudmFsLnYxLlVpbnQ2NEFycmF5SABSC3VpbnQ2NEFycmF5EjsKC2Zsb2F0X2FycmF5GBsgASgLMhgua3Vrc2EudmFsLnYxLkZsb2F0QXJyYXlIAFIKZmxvYXRBcnJheRI+Cgxkb3VibGVfYXJyYXkYHCABKAsyGS5rdWtzYS52YWwudjEuRG91YmxlQXJyYXlIAFILZG91YmxlQXJyYXlCBwoFdmFsdWU=');
+@$core.Deprecated('Use metadataDescriptor instead')
+const Metadata$json = const {
+ '1': 'Metadata',
+ '2': const [
+ const {'1': 'data_type', '3': 11, '4': 1, '5': 14, '6': '.kuksa.val.v1.DataType', '10': 'dataType'},
+ const {'1': 'entry_type', '3': 12, '4': 1, '5': 14, '6': '.kuksa.val.v1.EntryType', '10': 'entryType'},
+ const {'1': 'description', '3': 13, '4': 1, '5': 9, '9': 1, '10': 'description', '17': true},
+ const {'1': 'comment', '3': 14, '4': 1, '5': 9, '9': 2, '10': 'comment', '17': true},
+ const {'1': 'deprecation', '3': 15, '4': 1, '5': 9, '9': 3, '10': 'deprecation', '17': true},
+ const {'1': 'unit', '3': 16, '4': 1, '5': 9, '9': 4, '10': 'unit', '17': true},
+ const {'1': 'value_restriction', '3': 17, '4': 1, '5': 11, '6': '.kuksa.val.v1.ValueRestriction', '10': 'valueRestriction'},
+ const {'1': 'actuator', '3': 20, '4': 1, '5': 11, '6': '.kuksa.val.v1.Actuator', '9': 0, '10': 'actuator'},
+ const {'1': 'sensor', '3': 30, '4': 1, '5': 11, '6': '.kuksa.val.v1.Sensor', '9': 0, '10': 'sensor'},
+ const {'1': 'attribute', '3': 40, '4': 1, '5': 11, '6': '.kuksa.val.v1.Attribute', '9': 0, '10': 'attribute'},
+ ],
+ '8': const [
+ const {'1': 'entry_specific'},
+ const {'1': '_description'},
+ const {'1': '_comment'},
+ const {'1': '_deprecation'},
+ const {'1': '_unit'},
+ ],
+};
+
+/// Descriptor for `Metadata`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List metadataDescriptor = $convert.base64Decode('CghNZXRhZGF0YRIzCglkYXRhX3R5cGUYCyABKA4yFi5rdWtzYS52YWwudjEuRGF0YVR5cGVSCGRhdGFUeXBlEjYKCmVudHJ5X3R5cGUYDCABKA4yFy5rdWtzYS52YWwudjEuRW50cnlUeXBlUgllbnRyeVR5cGUSJQoLZGVzY3JpcHRpb24YDSABKAlIAVILZGVzY3JpcHRpb26IAQESHQoHY29tbWVudBgOIAEoCUgCUgdjb21tZW50iAEBEiUKC2RlcHJlY2F0aW9uGA8gASgJSANSC2RlcHJlY2F0aW9uiAEBEhcKBHVuaXQYECABKAlIBFIEdW5pdIgBARJLChF2YWx1ZV9yZXN0cmljdGlvbhgRIAEoCzIeLmt1a3NhLnZhbC52MS5WYWx1ZVJlc3RyaWN0aW9uUhB2YWx1ZVJlc3RyaWN0aW9uEjQKCGFjdHVhdG9yGBQgASgLMhYua3Vrc2EudmFsLnYxLkFjdHVhdG9ySABSCGFjdHVhdG9yEi4KBnNlbnNvchgeIAEoCzIULmt1a3NhLnZhbC52MS5TZW5zb3JIAFIGc2Vuc29yEjcKCWF0dHJpYnV0ZRgoIAEoCzIXLmt1a3NhLnZhbC52MS5BdHRyaWJ1dGVIAFIJYXR0cmlidXRlQhAKDmVudHJ5X3NwZWNpZmljQg4KDF9kZXNjcmlwdGlvbkIKCghfY29tbWVudEIOCgxfZGVwcmVjYXRpb25CBwoFX3VuaXQ=');
+@$core.Deprecated('Use actuatorDescriptor instead')
+const Actuator$json = const {
+ '1': 'Actuator',
+};
+
+/// Descriptor for `Actuator`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List actuatorDescriptor = $convert.base64Decode('CghBY3R1YXRvcg==');
+@$core.Deprecated('Use sensorDescriptor instead')
+const Sensor$json = const {
+ '1': 'Sensor',
+};
+
+/// Descriptor for `Sensor`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List sensorDescriptor = $convert.base64Decode('CgZTZW5zb3I=');
+@$core.Deprecated('Use attributeDescriptor instead')
+const Attribute$json = const {
+ '1': 'Attribute',
+};
+
+/// Descriptor for `Attribute`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List attributeDescriptor = $convert.base64Decode('CglBdHRyaWJ1dGU=');
+@$core.Deprecated('Use valueRestrictionDescriptor instead')
+const ValueRestriction$json = const {
+ '1': 'ValueRestriction',
+ '2': const [
+ const {'1': 'string', '3': 21, '4': 1, '5': 11, '6': '.kuksa.val.v1.ValueRestrictionString', '9': 0, '10': 'string'},
+ const {'1': 'signed', '3': 22, '4': 1, '5': 11, '6': '.kuksa.val.v1.ValueRestrictionInt', '9': 0, '10': 'signed'},
+ const {'1': 'unsigned', '3': 23, '4': 1, '5': 11, '6': '.kuksa.val.v1.ValueRestrictionUint', '9': 0, '10': 'unsigned'},
+ const {'1': 'floating_point', '3': 24, '4': 1, '5': 11, '6': '.kuksa.val.v1.ValueRestrictionFloat', '9': 0, '10': 'floatingPoint'},
+ ],
+ '8': const [
+ const {'1': 'type'},
+ ],
+};
+
+/// Descriptor for `ValueRestriction`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List valueRestrictionDescriptor = $convert.base64Decode('ChBWYWx1ZVJlc3RyaWN0aW9uEj4KBnN0cmluZxgVIAEoCzIkLmt1a3NhLnZhbC52MS5WYWx1ZVJlc3RyaWN0aW9uU3RyaW5nSABSBnN0cmluZxI7CgZzaWduZWQYFiABKAsyIS5rdWtzYS52YWwudjEuVmFsdWVSZXN0cmljdGlvbkludEgAUgZzaWduZWQSQAoIdW5zaWduZWQYFyABKAsyIi5rdWtzYS52YWwudjEuVmFsdWVSZXN0cmljdGlvblVpbnRIAFIIdW5zaWduZWQSTAoOZmxvYXRpbmdfcG9pbnQYGCABKAsyIy5rdWtzYS52YWwudjEuVmFsdWVSZXN0cmljdGlvbkZsb2F0SABSDWZsb2F0aW5nUG9pbnRCBgoEdHlwZQ==');
+@$core.Deprecated('Use valueRestrictionIntDescriptor instead')
+const ValueRestrictionInt$json = const {
+ '1': 'ValueRestrictionInt',
+ '2': const [
+ const {'1': 'min', '3': 1, '4': 1, '5': 18, '9': 0, '10': 'min', '17': true},
+ const {'1': 'max', '3': 2, '4': 1, '5': 18, '9': 1, '10': 'max', '17': true},
+ const {'1': 'allowed_values', '3': 3, '4': 3, '5': 18, '10': 'allowedValues'},
+ ],
+ '8': const [
+ const {'1': '_min'},
+ const {'1': '_max'},
+ ],
+};
+
+/// Descriptor for `ValueRestrictionInt`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List valueRestrictionIntDescriptor = $convert.base64Decode('ChNWYWx1ZVJlc3RyaWN0aW9uSW50EhUKA21pbhgBIAEoEkgAUgNtaW6IAQESFQoDbWF4GAIgASgSSAFSA21heIgBARIlCg5hbGxvd2VkX3ZhbHVlcxgDIAMoElINYWxsb3dlZFZhbHVlc0IGCgRfbWluQgYKBF9tYXg=');
+@$core.Deprecated('Use valueRestrictionUintDescriptor instead')
+const ValueRestrictionUint$json = const {
+ '1': 'ValueRestrictionUint',
+ '2': const [
+ const {'1': 'min', '3': 1, '4': 1, '5': 4, '9': 0, '10': 'min', '17': true},
+ const {'1': 'max', '3': 2, '4': 1, '5': 4, '9': 1, '10': 'max', '17': true},
+ const {'1': 'allowed_values', '3': 3, '4': 3, '5': 4, '10': 'allowedValues'},
+ ],
+ '8': const [
+ const {'1': '_min'},
+ const {'1': '_max'},
+ ],
+};
+
+/// Descriptor for `ValueRestrictionUint`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List valueRestrictionUintDescriptor = $convert.base64Decode('ChRWYWx1ZVJlc3RyaWN0aW9uVWludBIVCgNtaW4YASABKARIAFIDbWluiAEBEhUKA21heBgCIAEoBEgBUgNtYXiIAQESJQoOYWxsb3dlZF92YWx1ZXMYAyADKARSDWFsbG93ZWRWYWx1ZXNCBgoEX21pbkIGCgRfbWF4');
+@$core.Deprecated('Use valueRestrictionFloatDescriptor instead')
+const ValueRestrictionFloat$json = const {
+ '1': 'ValueRestrictionFloat',
+ '2': const [
+ const {'1': 'min', '3': 1, '4': 1, '5': 1, '9': 0, '10': 'min', '17': true},
+ const {'1': 'max', '3': 2, '4': 1, '5': 1, '9': 1, '10': 'max', '17': true},
+ const {'1': 'allowed_values', '3': 3, '4': 3, '5': 1, '10': 'allowedValues'},
+ ],
+ '8': const [
+ const {'1': '_min'},
+ const {'1': '_max'},
+ ],
+};
+
+/// Descriptor for `ValueRestrictionFloat`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List valueRestrictionFloatDescriptor = $convert.base64Decode('ChVWYWx1ZVJlc3RyaWN0aW9uRmxvYXQSFQoDbWluGAEgASgBSABSA21pbogBARIVCgNtYXgYAiABKAFIAVIDbWF4iAEBEiUKDmFsbG93ZWRfdmFsdWVzGAMgAygBUg1hbGxvd2VkVmFsdWVzQgYKBF9taW5CBgoEX21heA==');
+@$core.Deprecated('Use valueRestrictionStringDescriptor instead')
+const ValueRestrictionString$json = const {
+ '1': 'ValueRestrictionString',
+ '2': const [
+ const {'1': 'allowed_values', '3': 3, '4': 3, '5': 9, '10': 'allowedValues'},
+ ],
+};
+
+/// Descriptor for `ValueRestrictionString`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List valueRestrictionStringDescriptor = $convert.base64Decode('ChZWYWx1ZVJlc3RyaWN0aW9uU3RyaW5nEiUKDmFsbG93ZWRfdmFsdWVzGAMgAygJUg1hbGxvd2VkVmFsdWVz');
+@$core.Deprecated('Use errorDescriptor instead')
+const Error$json = const {
+ '1': 'Error',
+ '2': const [
+ const {'1': 'code', '3': 1, '4': 1, '5': 13, '10': 'code'},
+ const {'1': 'reason', '3': 2, '4': 1, '5': 9, '10': 'reason'},
+ const {'1': 'message', '3': 3, '4': 1, '5': 9, '10': 'message'},
+ ],
+};
+
+/// Descriptor for `Error`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List errorDescriptor = $convert.base64Decode('CgVFcnJvchISCgRjb2RlGAEgASgNUgRjb2RlEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uEhgKB21lc3NhZ2UYAyABKAlSB21lc3NhZ2U=');
+@$core.Deprecated('Use dataEntryErrorDescriptor instead')
+const DataEntryError$json = const {
+ '1': 'DataEntryError',
+ '2': const [
+ const {'1': 'path', '3': 1, '4': 1, '5': 9, '10': 'path'},
+ const {'1': 'error', '3': 2, '4': 1, '5': 11, '6': '.kuksa.val.v1.Error', '10': 'error'},
+ ],
+};
+
+/// Descriptor for `DataEntryError`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List dataEntryErrorDescriptor = $convert.base64Decode('Cg5EYXRhRW50cnlFcnJvchISCgRwYXRoGAEgASgJUgRwYXRoEikKBWVycm9yGAIgASgLMhMua3Vrc2EudmFsLnYxLkVycm9yUgVlcnJvcg==');
+@$core.Deprecated('Use stringArrayDescriptor instead')
+const StringArray$json = const {
+ '1': 'StringArray',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 9, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `StringArray`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List stringArrayDescriptor = $convert.base64Decode('CgtTdHJpbmdBcnJheRIWCgZ2YWx1ZXMYASADKAlSBnZhbHVlcw==');
+@$core.Deprecated('Use boolArrayDescriptor instead')
+const BoolArray$json = const {
+ '1': 'BoolArray',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 8, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `BoolArray`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List boolArrayDescriptor = $convert.base64Decode('CglCb29sQXJyYXkSFgoGdmFsdWVzGAEgAygIUgZ2YWx1ZXM=');
+@$core.Deprecated('Use int32ArrayDescriptor instead')
+const Int32Array$json = const {
+ '1': 'Int32Array',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 17, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `Int32Array`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List int32ArrayDescriptor = $convert.base64Decode('CgpJbnQzMkFycmF5EhYKBnZhbHVlcxgBIAMoEVIGdmFsdWVz');
+@$core.Deprecated('Use int64ArrayDescriptor instead')
+const Int64Array$json = const {
+ '1': 'Int64Array',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 18, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `Int64Array`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List int64ArrayDescriptor = $convert.base64Decode('CgpJbnQ2NEFycmF5EhYKBnZhbHVlcxgBIAMoElIGdmFsdWVz');
+@$core.Deprecated('Use uint32ArrayDescriptor instead')
+const Uint32Array$json = const {
+ '1': 'Uint32Array',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 13, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `Uint32Array`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List uint32ArrayDescriptor = $convert.base64Decode('CgtVaW50MzJBcnJheRIWCgZ2YWx1ZXMYASADKA1SBnZhbHVlcw==');
+@$core.Deprecated('Use uint64ArrayDescriptor instead')
+const Uint64Array$json = const {
+ '1': 'Uint64Array',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 4, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `Uint64Array`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List uint64ArrayDescriptor = $convert.base64Decode('CgtVaW50NjRBcnJheRIWCgZ2YWx1ZXMYASADKARSBnZhbHVlcw==');
+@$core.Deprecated('Use floatArrayDescriptor instead')
+const FloatArray$json = const {
+ '1': 'FloatArray',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 2, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `FloatArray`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List floatArrayDescriptor = $convert.base64Decode('CgpGbG9hdEFycmF5EhYKBnZhbHVlcxgBIAMoAlIGdmFsdWVz');
+@$core.Deprecated('Use doubleArrayDescriptor instead')
+const DoubleArray$json = const {
+ '1': 'DoubleArray',
+ '2': const [
+ const {'1': 'values', '3': 1, '4': 3, '5': 1, '10': 'values'},
+ ],
+};
+
+/// Descriptor for `DoubleArray`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List doubleArrayDescriptor = $convert.base64Decode('CgtEb3VibGVBcnJheRIWCgZ2YWx1ZXMYASADKAFSBnZhbHVlcw==');
diff --git a/lib/generated/kuksa/val/v1/val.pb.dart b/lib/generated/kuksa/val/v1/val.pb.dart
new file mode 100644
index 0000000..761fba0
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/val.pb.dart
@@ -0,0 +1,586 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/val.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+
+import 'package:protobuf/protobuf.dart' as $pb;
+
+import 'types.pb.dart' as $1;
+
+import 'types.pbenum.dart' as $1;
+
+class EntryRequest extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'EntryRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'path')
+ ..e<$1.View>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'view', $pb.PbFieldType.OE, defaultOrMaker: $1.View.VIEW_UNSPECIFIED, valueOf: $1.View.valueOf, enumValues: $1.View.values)
+ ..pc<$1.Field>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'fields', $pb.PbFieldType.KE, valueOf: $1.Field.valueOf, enumValues: $1.Field.values, defaultEnumValue: $1.Field.FIELD_UNSPECIFIED)
+ ..hasRequiredFields = false
+ ;
+
+ EntryRequest._() : super();
+ factory EntryRequest({
+ $core.String? path,
+ $1.View? view,
+ $core.Iterable<$1.Field>? fields,
+ }) {
+ final _result = create();
+ if (path != null) {
+ _result.path = path;
+ }
+ if (view != null) {
+ _result.view = view;
+ }
+ if (fields != null) {
+ _result.fields.addAll(fields);
+ }
+ return _result;
+ }
+ factory EntryRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory EntryRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ EntryRequest clone() => EntryRequest()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ EntryRequest copyWith(void Function(EntryRequest) updates) => super.copyWith((message) => updates(message as EntryRequest)) as EntryRequest; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static EntryRequest create() => EntryRequest._();
+ EntryRequest createEmptyInstance() => create();
+ static $pb.PbList<EntryRequest> createRepeated() => $pb.PbList<EntryRequest>();
+ @$core.pragma('dart2js:noInline')
+ static EntryRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<EntryRequest>(create);
+ static EntryRequest? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.String get path => $_getSZ(0);
+ @$pb.TagNumber(1)
+ set path($core.String v) { $_setString(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasPath() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearPath() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $1.View get view => $_getN(1);
+ @$pb.TagNumber(2)
+ set view($1.View v) { setField(2, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasView() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearView() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.List<$1.Field> get fields => $_getList(2);
+}
+
+class GetRequest extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pc<EntryRequest>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'entries', $pb.PbFieldType.PM, subBuilder: EntryRequest.create)
+ ..hasRequiredFields = false
+ ;
+
+ GetRequest._() : super();
+ factory GetRequest({
+ $core.Iterable<EntryRequest>? entries,
+ }) {
+ final _result = create();
+ if (entries != null) {
+ _result.entries.addAll(entries);
+ }
+ return _result;
+ }
+ factory GetRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory GetRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ GetRequest clone() => GetRequest()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ GetRequest copyWith(void Function(GetRequest) updates) => super.copyWith((message) => updates(message as GetRequest)) as GetRequest; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static GetRequest create() => GetRequest._();
+ GetRequest createEmptyInstance() => create();
+ static $pb.PbList<GetRequest> createRepeated() => $pb.PbList<GetRequest>();
+ @$core.pragma('dart2js:noInline')
+ static GetRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetRequest>(create);
+ static GetRequest? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<EntryRequest> get entries => $_getList(0);
+}
+
+class GetResponse extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pc<$1.DataEntry>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'entries', $pb.PbFieldType.PM, subBuilder: $1.DataEntry.create)
+ ..pc<$1.DataEntryError>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'errors', $pb.PbFieldType.PM, subBuilder: $1.DataEntryError.create)
+ ..aOM<$1.Error>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'error', subBuilder: $1.Error.create)
+ ..hasRequiredFields = false
+ ;
+
+ GetResponse._() : super();
+ factory GetResponse({
+ $core.Iterable<$1.DataEntry>? entries,
+ $core.Iterable<$1.DataEntryError>? errors,
+ $1.Error? error,
+ }) {
+ final _result = create();
+ if (entries != null) {
+ _result.entries.addAll(entries);
+ }
+ if (errors != null) {
+ _result.errors.addAll(errors);
+ }
+ if (error != null) {
+ _result.error = error;
+ }
+ return _result;
+ }
+ factory GetResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory GetResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ GetResponse clone() => GetResponse()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ GetResponse copyWith(void Function(GetResponse) updates) => super.copyWith((message) => updates(message as GetResponse)) as GetResponse; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static GetResponse create() => GetResponse._();
+ GetResponse createEmptyInstance() => create();
+ static $pb.PbList<GetResponse> createRepeated() => $pb.PbList<GetResponse>();
+ @$core.pragma('dart2js:noInline')
+ static GetResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetResponse>(create);
+ static GetResponse? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<$1.DataEntry> get entries => $_getList(0);
+
+ @$pb.TagNumber(2)
+ $core.List<$1.DataEntryError> get errors => $_getList(1);
+
+ @$pb.TagNumber(3)
+ $1.Error get error => $_getN(2);
+ @$pb.TagNumber(3)
+ set error($1.Error v) { setField(3, v); }
+ @$pb.TagNumber(3)
+ $core.bool hasError() => $_has(2);
+ @$pb.TagNumber(3)
+ void clearError() => clearField(3);
+ @$pb.TagNumber(3)
+ $1.Error ensureError() => $_ensure(2);
+}
+
+class EntryUpdate extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'EntryUpdate', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOM<$1.DataEntry>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'entry', subBuilder: $1.DataEntry.create)
+ ..pc<$1.Field>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'fields', $pb.PbFieldType.KE, valueOf: $1.Field.valueOf, enumValues: $1.Field.values, defaultEnumValue: $1.Field.FIELD_UNSPECIFIED)
+ ..hasRequiredFields = false
+ ;
+
+ EntryUpdate._() : super();
+ factory EntryUpdate({
+ $1.DataEntry? entry,
+ $core.Iterable<$1.Field>? fields,
+ }) {
+ final _result = create();
+ if (entry != null) {
+ _result.entry = entry;
+ }
+ if (fields != null) {
+ _result.fields.addAll(fields);
+ }
+ return _result;
+ }
+ factory EntryUpdate.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory EntryUpdate.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ EntryUpdate clone() => EntryUpdate()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ EntryUpdate copyWith(void Function(EntryUpdate) updates) => super.copyWith((message) => updates(message as EntryUpdate)) as EntryUpdate; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static EntryUpdate create() => EntryUpdate._();
+ EntryUpdate createEmptyInstance() => create();
+ static $pb.PbList<EntryUpdate> createRepeated() => $pb.PbList<EntryUpdate>();
+ @$core.pragma('dart2js:noInline')
+ static EntryUpdate getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<EntryUpdate>(create);
+ static EntryUpdate? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $1.DataEntry get entry => $_getN(0);
+ @$pb.TagNumber(1)
+ set entry($1.DataEntry v) { setField(1, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasEntry() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearEntry() => clearField(1);
+ @$pb.TagNumber(1)
+ $1.DataEntry ensureEntry() => $_ensure(0);
+
+ @$pb.TagNumber(2)
+ $core.List<$1.Field> get fields => $_getList(1);
+}
+
+class SetRequest extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pc<EntryUpdate>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'updates', $pb.PbFieldType.PM, subBuilder: EntryUpdate.create)
+ ..hasRequiredFields = false
+ ;
+
+ SetRequest._() : super();
+ factory SetRequest({
+ $core.Iterable<EntryUpdate>? updates,
+ }) {
+ final _result = create();
+ if (updates != null) {
+ _result.updates.addAll(updates);
+ }
+ return _result;
+ }
+ factory SetRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory SetRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ SetRequest clone() => SetRequest()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ SetRequest copyWith(void Function(SetRequest) updates) => super.copyWith((message) => updates(message as SetRequest)) as SetRequest; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static SetRequest create() => SetRequest._();
+ SetRequest createEmptyInstance() => create();
+ static $pb.PbList<SetRequest> createRepeated() => $pb.PbList<SetRequest>();
+ @$core.pragma('dart2js:noInline')
+ static SetRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<SetRequest>(create);
+ static SetRequest? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<EntryUpdate> get updates => $_getList(0);
+}
+
+class SetResponse extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOM<$1.Error>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'error', subBuilder: $1.Error.create)
+ ..pc<$1.DataEntryError>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'errors', $pb.PbFieldType.PM, subBuilder: $1.DataEntryError.create)
+ ..hasRequiredFields = false
+ ;
+
+ SetResponse._() : super();
+ factory SetResponse({
+ $1.Error? error,
+ $core.Iterable<$1.DataEntryError>? errors,
+ }) {
+ final _result = create();
+ if (error != null) {
+ _result.error = error;
+ }
+ if (errors != null) {
+ _result.errors.addAll(errors);
+ }
+ return _result;
+ }
+ factory SetResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory SetResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ SetResponse clone() => SetResponse()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ SetResponse copyWith(void Function(SetResponse) updates) => super.copyWith((message) => updates(message as SetResponse)) as SetResponse; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static SetResponse create() => SetResponse._();
+ SetResponse createEmptyInstance() => create();
+ static $pb.PbList<SetResponse> createRepeated() => $pb.PbList<SetResponse>();
+ @$core.pragma('dart2js:noInline')
+ static SetResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<SetResponse>(create);
+ static SetResponse? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $1.Error get error => $_getN(0);
+ @$pb.TagNumber(1)
+ set error($1.Error v) { setField(1, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasError() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearError() => clearField(1);
+ @$pb.TagNumber(1)
+ $1.Error ensureError() => $_ensure(0);
+
+ @$pb.TagNumber(2)
+ $core.List<$1.DataEntryError> get errors => $_getList(1);
+}
+
+class SubscribeEntry extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SubscribeEntry', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'path')
+ ..e<$1.View>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'view', $pb.PbFieldType.OE, defaultOrMaker: $1.View.VIEW_UNSPECIFIED, valueOf: $1.View.valueOf, enumValues: $1.View.values)
+ ..pc<$1.Field>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'fields', $pb.PbFieldType.KE, valueOf: $1.Field.valueOf, enumValues: $1.Field.values, defaultEnumValue: $1.Field.FIELD_UNSPECIFIED)
+ ..hasRequiredFields = false
+ ;
+
+ SubscribeEntry._() : super();
+ factory SubscribeEntry({
+ $core.String? path,
+ $1.View? view,
+ $core.Iterable<$1.Field>? fields,
+ }) {
+ final _result = create();
+ if (path != null) {
+ _result.path = path;
+ }
+ if (view != null) {
+ _result.view = view;
+ }
+ if (fields != null) {
+ _result.fields.addAll(fields);
+ }
+ return _result;
+ }
+ factory SubscribeEntry.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory SubscribeEntry.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ SubscribeEntry clone() => SubscribeEntry()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ SubscribeEntry copyWith(void Function(SubscribeEntry) updates) => super.copyWith((message) => updates(message as SubscribeEntry)) as SubscribeEntry; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static SubscribeEntry create() => SubscribeEntry._();
+ SubscribeEntry createEmptyInstance() => create();
+ static $pb.PbList<SubscribeEntry> createRepeated() => $pb.PbList<SubscribeEntry>();
+ @$core.pragma('dart2js:noInline')
+ static SubscribeEntry getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<SubscribeEntry>(create);
+ static SubscribeEntry? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.String get path => $_getSZ(0);
+ @$pb.TagNumber(1)
+ set path($core.String v) { $_setString(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasPath() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearPath() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $1.View get view => $_getN(1);
+ @$pb.TagNumber(2)
+ set view($1.View v) { setField(2, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasView() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearView() => clearField(2);
+
+ @$pb.TagNumber(3)
+ $core.List<$1.Field> get fields => $_getList(2);
+}
+
+class SubscribeRequest extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SubscribeRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pc<SubscribeEntry>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'entries', $pb.PbFieldType.PM, subBuilder: SubscribeEntry.create)
+ ..hasRequiredFields = false
+ ;
+
+ SubscribeRequest._() : super();
+ factory SubscribeRequest({
+ $core.Iterable<SubscribeEntry>? entries,
+ }) {
+ final _result = create();
+ if (entries != null) {
+ _result.entries.addAll(entries);
+ }
+ return _result;
+ }
+ factory SubscribeRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory SubscribeRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ SubscribeRequest clone() => SubscribeRequest()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ SubscribeRequest copyWith(void Function(SubscribeRequest) updates) => super.copyWith((message) => updates(message as SubscribeRequest)) as SubscribeRequest; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static SubscribeRequest create() => SubscribeRequest._();
+ SubscribeRequest createEmptyInstance() => create();
+ static $pb.PbList<SubscribeRequest> createRepeated() => $pb.PbList<SubscribeRequest>();
+ @$core.pragma('dart2js:noInline')
+ static SubscribeRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<SubscribeRequest>(create);
+ static SubscribeRequest? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<SubscribeEntry> get entries => $_getList(0);
+}
+
+class SubscribeResponse extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SubscribeResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..pc<EntryUpdate>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'updates', $pb.PbFieldType.PM, subBuilder: EntryUpdate.create)
+ ..hasRequiredFields = false
+ ;
+
+ SubscribeResponse._() : super();
+ factory SubscribeResponse({
+ $core.Iterable<EntryUpdate>? updates,
+ }) {
+ final _result = create();
+ if (updates != null) {
+ _result.updates.addAll(updates);
+ }
+ return _result;
+ }
+ factory SubscribeResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory SubscribeResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ SubscribeResponse clone() => SubscribeResponse()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ SubscribeResponse copyWith(void Function(SubscribeResponse) updates) => super.copyWith((message) => updates(message as SubscribeResponse)) as SubscribeResponse; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static SubscribeResponse create() => SubscribeResponse._();
+ SubscribeResponse createEmptyInstance() => create();
+ static $pb.PbList<SubscribeResponse> createRepeated() => $pb.PbList<SubscribeResponse>();
+ @$core.pragma('dart2js:noInline')
+ static SubscribeResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<SubscribeResponse>(create);
+ static SubscribeResponse? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.List<EntryUpdate> get updates => $_getList(0);
+}
+
+class GetServerInfoRequest extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetServerInfoRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..hasRequiredFields = false
+ ;
+
+ GetServerInfoRequest._() : super();
+ factory GetServerInfoRequest() => create();
+ factory GetServerInfoRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory GetServerInfoRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ GetServerInfoRequest clone() => GetServerInfoRequest()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ GetServerInfoRequest copyWith(void Function(GetServerInfoRequest) updates) => super.copyWith((message) => updates(message as GetServerInfoRequest)) as GetServerInfoRequest; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static GetServerInfoRequest create() => GetServerInfoRequest._();
+ GetServerInfoRequest createEmptyInstance() => create();
+ static $pb.PbList<GetServerInfoRequest> createRepeated() => $pb.PbList<GetServerInfoRequest>();
+ @$core.pragma('dart2js:noInline')
+ static GetServerInfoRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetServerInfoRequest>(create);
+ static GetServerInfoRequest? _defaultInstance;
+}
+
+class GetServerInfoResponse extends $pb.GeneratedMessage {
+ static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetServerInfoResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'kuksa.val.v1'), createEmptyInstance: create)
+ ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name')
+ ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'version')
+ ..hasRequiredFields = false
+ ;
+
+ GetServerInfoResponse._() : super();
+ factory GetServerInfoResponse({
+ $core.String? name,
+ $core.String? version,
+ }) {
+ final _result = create();
+ if (name != null) {
+ _result.name = name;
+ }
+ if (version != null) {
+ _result.version = version;
+ }
+ return _result;
+ }
+ factory GetServerInfoResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
+ factory GetServerInfoResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
+ 'Will be removed in next major version')
+ GetServerInfoResponse clone() => GetServerInfoResponse()..mergeFromMessage(this);
+ @$core.Deprecated(
+ 'Using this can add significant overhead to your binary. '
+ 'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
+ 'Will be removed in next major version')
+ GetServerInfoResponse copyWith(void Function(GetServerInfoResponse) updates) => super.copyWith((message) => updates(message as GetServerInfoResponse)) as GetServerInfoResponse; // ignore: deprecated_member_use
+ $pb.BuilderInfo get info_ => _i;
+ @$core.pragma('dart2js:noInline')
+ static GetServerInfoResponse create() => GetServerInfoResponse._();
+ GetServerInfoResponse createEmptyInstance() => create();
+ static $pb.PbList<GetServerInfoResponse> createRepeated() => $pb.PbList<GetServerInfoResponse>();
+ @$core.pragma('dart2js:noInline')
+ static GetServerInfoResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GetServerInfoResponse>(create);
+ static GetServerInfoResponse? _defaultInstance;
+
+ @$pb.TagNumber(1)
+ $core.String get name => $_getSZ(0);
+ @$pb.TagNumber(1)
+ set name($core.String v) { $_setString(0, v); }
+ @$pb.TagNumber(1)
+ $core.bool hasName() => $_has(0);
+ @$pb.TagNumber(1)
+ void clearName() => clearField(1);
+
+ @$pb.TagNumber(2)
+ $core.String get version => $_getSZ(1);
+ @$pb.TagNumber(2)
+ set version($core.String v) { $_setString(1, v); }
+ @$pb.TagNumber(2)
+ $core.bool hasVersion() => $_has(1);
+ @$pb.TagNumber(2)
+ void clearVersion() => clearField(2);
+}
+
diff --git a/lib/generated/kuksa/val/v1/val.pbenum.dart b/lib/generated/kuksa/val/v1/val.pbenum.dart
new file mode 100644
index 0000000..0500def
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/val.pbenum.dart
@@ -0,0 +1,7 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/val.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
diff --git a/lib/generated/kuksa/val/v1/val.pbgrpc.dart b/lib/generated/kuksa/val/v1/val.pbgrpc.dart
new file mode 100644
index 0000000..3a9a3c8
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/val.pbgrpc.dart
@@ -0,0 +1,133 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/val.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:async' as $async;
+
+import 'dart:core' as $core;
+
+import 'package:grpc/service_api.dart' as $grpc;
+import 'val.pb.dart' as $0;
+export 'val.pb.dart';
+
+class VALClient extends $grpc.Client {
+ static final _$get = $grpc.ClientMethod<$0.GetRequest, $0.GetResponse>(
+ '/kuksa.val.v1.VAL/Get',
+ ($0.GetRequest value) => value.writeToBuffer(),
+ ($core.List<$core.int> value) => $0.GetResponse.fromBuffer(value));
+ static final _$set = $grpc.ClientMethod<$0.SetRequest, $0.SetResponse>(
+ '/kuksa.val.v1.VAL/Set',
+ ($0.SetRequest value) => value.writeToBuffer(),
+ ($core.List<$core.int> value) => $0.SetResponse.fromBuffer(value));
+ static final _$subscribe =
+ $grpc.ClientMethod<$0.SubscribeRequest, $0.SubscribeResponse>(
+ '/kuksa.val.v1.VAL/Subscribe',
+ ($0.SubscribeRequest value) => value.writeToBuffer(),
+ ($core.List<$core.int> value) =>
+ $0.SubscribeResponse.fromBuffer(value));
+ static final _$getServerInfo =
+ $grpc.ClientMethod<$0.GetServerInfoRequest, $0.GetServerInfoResponse>(
+ '/kuksa.val.v1.VAL/GetServerInfo',
+ ($0.GetServerInfoRequest value) => value.writeToBuffer(),
+ ($core.List<$core.int> value) =>
+ $0.GetServerInfoResponse.fromBuffer(value));
+
+ VALClient($grpc.ClientChannel channel,
+ {$grpc.CallOptions? options,
+ $core.Iterable<$grpc.ClientInterceptor>? interceptors})
+ : super(channel, options: options, interceptors: interceptors);
+
+ $grpc.ResponseFuture<$0.GetResponse> get($0.GetRequest request,
+ {$grpc.CallOptions? options}) {
+ return $createUnaryCall(_$get, request, options: options);
+ }
+
+ $grpc.ResponseFuture<$0.SetResponse> set($0.SetRequest request,
+ {$grpc.CallOptions? options}) {
+ return $createUnaryCall(_$set, request, options: options);
+ }
+
+ $grpc.ResponseStream<$0.SubscribeResponse> subscribe(
+ $0.SubscribeRequest request,
+ {$grpc.CallOptions? options}) {
+ return $createStreamingCall(
+ _$subscribe, $async.Stream.fromIterable([request]),
+ options: options);
+ }
+
+ $grpc.ResponseFuture<$0.GetServerInfoResponse> getServerInfo(
+ $0.GetServerInfoRequest request,
+ {$grpc.CallOptions? options}) {
+ return $createUnaryCall(_$getServerInfo, request, options: options);
+ }
+}
+
+abstract class VALServiceBase extends $grpc.Service {
+ $core.String get $name => 'kuksa.val.v1.VAL';
+
+ VALServiceBase() {
+ $addMethod($grpc.ServiceMethod<$0.GetRequest, $0.GetResponse>(
+ 'Get',
+ get_Pre,
+ false,
+ false,
+ ($core.List<$core.int> value) => $0.GetRequest.fromBuffer(value),
+ ($0.GetResponse value) => value.writeToBuffer()));
+ $addMethod($grpc.ServiceMethod<$0.SetRequest, $0.SetResponse>(
+ 'Set',
+ set_Pre,
+ false,
+ false,
+ ($core.List<$core.int> value) => $0.SetRequest.fromBuffer(value),
+ ($0.SetResponse value) => value.writeToBuffer()));
+ $addMethod($grpc.ServiceMethod<$0.SubscribeRequest, $0.SubscribeResponse>(
+ 'Subscribe',
+ subscribe_Pre,
+ false,
+ true,
+ ($core.List<$core.int> value) => $0.SubscribeRequest.fromBuffer(value),
+ ($0.SubscribeResponse value) => value.writeToBuffer()));
+ $addMethod(
+ $grpc.ServiceMethod<$0.GetServerInfoRequest, $0.GetServerInfoResponse>(
+ 'GetServerInfo',
+ getServerInfo_Pre,
+ false,
+ false,
+ ($core.List<$core.int> value) =>
+ $0.GetServerInfoRequest.fromBuffer(value),
+ ($0.GetServerInfoResponse value) => value.writeToBuffer()));
+ }
+
+ $async.Future<$0.GetResponse> get_Pre(
+ $grpc.ServiceCall call, $async.Future<$0.GetRequest> request) async {
+ return get(call, await request);
+ }
+
+ $async.Future<$0.SetResponse> set_Pre(
+ $grpc.ServiceCall call, $async.Future<$0.SetRequest> request) async {
+ return set(call, await request);
+ }
+
+ $async.Stream<$0.SubscribeResponse> subscribe_Pre($grpc.ServiceCall call,
+ $async.Future<$0.SubscribeRequest> request) async* {
+ yield* subscribe(call, await request);
+ }
+
+ $async.Future<$0.GetServerInfoResponse> getServerInfo_Pre(
+ $grpc.ServiceCall call,
+ $async.Future<$0.GetServerInfoRequest> request) async {
+ return getServerInfo(call, await request);
+ }
+
+ $async.Future<$0.GetResponse> get(
+ $grpc.ServiceCall call, $0.GetRequest request);
+ $async.Future<$0.SetResponse> set(
+ $grpc.ServiceCall call, $0.SetRequest request);
+ $async.Stream<$0.SubscribeResponse> subscribe(
+ $grpc.ServiceCall call, $0.SubscribeRequest request);
+ $async.Future<$0.GetServerInfoResponse> getServerInfo(
+ $grpc.ServiceCall call, $0.GetServerInfoRequest request);
+}
diff --git a/lib/generated/kuksa/val/v1/val.pbjson.dart b/lib/generated/kuksa/val/v1/val.pbjson.dart
new file mode 100644
index 0000000..e6c035c
--- /dev/null
+++ b/lib/generated/kuksa/val/v1/val.pbjson.dart
@@ -0,0 +1,126 @@
+///
+// Generated code. Do not modify.
+// source: kuksa/val/v1/val.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+@$core.Deprecated('Use entryRequestDescriptor instead')
+const EntryRequest$json = const {
+ '1': 'EntryRequest',
+ '2': const [
+ const {'1': 'path', '3': 1, '4': 1, '5': 9, '10': 'path'},
+ const {'1': 'view', '3': 2, '4': 1, '5': 14, '6': '.kuksa.val.v1.View', '10': 'view'},
+ const {'1': 'fields', '3': 3, '4': 3, '5': 14, '6': '.kuksa.val.v1.Field', '10': 'fields'},
+ ],
+};
+
+/// Descriptor for `EntryRequest`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List entryRequestDescriptor = $convert.base64Decode('CgxFbnRyeVJlcXVlc3QSEgoEcGF0aBgBIAEoCVIEcGF0aBImCgR2aWV3GAIgASgOMhIua3Vrc2EudmFsLnYxLlZpZXdSBHZpZXcSKwoGZmllbGRzGAMgAygOMhMua3Vrc2EudmFsLnYxLkZpZWxkUgZmaWVsZHM=');
+@$core.Deprecated('Use getRequestDescriptor instead')
+const GetRequest$json = const {
+ '1': 'GetRequest',
+ '2': const [
+ const {'1': 'entries', '3': 1, '4': 3, '5': 11, '6': '.kuksa.val.v1.EntryRequest', '10': 'entries'},
+ ],
+};
+
+/// Descriptor for `GetRequest`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List getRequestDescriptor = $convert.base64Decode('CgpHZXRSZXF1ZXN0EjQKB2VudHJpZXMYASADKAsyGi5rdWtzYS52YWwudjEuRW50cnlSZXF1ZXN0UgdlbnRyaWVz');
+@$core.Deprecated('Use getResponseDescriptor instead')
+const GetResponse$json = const {
+ '1': 'GetResponse',
+ '2': const [
+ const {'1': 'entries', '3': 1, '4': 3, '5': 11, '6': '.kuksa.val.v1.DataEntry', '10': 'entries'},
+ const {'1': 'errors', '3': 2, '4': 3, '5': 11, '6': '.kuksa.val.v1.DataEntryError', '10': 'errors'},
+ const {'1': 'error', '3': 3, '4': 1, '5': 11, '6': '.kuksa.val.v1.Error', '10': 'error'},
+ ],
+};
+
+/// Descriptor for `GetResponse`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List getResponseDescriptor = $convert.base64Decode('CgtHZXRSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMhcua3Vrc2EudmFsLnYxLkRhdGFFbnRyeVIHZW50cmllcxI0CgZlcnJvcnMYAiADKAsyHC5rdWtzYS52YWwudjEuRGF0YUVudHJ5RXJyb3JSBmVycm9ycxIpCgVlcnJvchgDIAEoCzITLmt1a3NhLnZhbC52MS5FcnJvclIFZXJyb3I=');
+@$core.Deprecated('Use entryUpdateDescriptor instead')
+const EntryUpdate$json = const {
+ '1': 'EntryUpdate',
+ '2': const [
+ const {'1': 'entry', '3': 1, '4': 1, '5': 11, '6': '.kuksa.val.v1.DataEntry', '10': 'entry'},
+ const {'1': 'fields', '3': 2, '4': 3, '5': 14, '6': '.kuksa.val.v1.Field', '10': 'fields'},
+ ],
+};
+
+/// Descriptor for `EntryUpdate`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List entryUpdateDescriptor = $convert.base64Decode('CgtFbnRyeVVwZGF0ZRItCgVlbnRyeRgBIAEoCzIXLmt1a3NhLnZhbC52MS5EYXRhRW50cnlSBWVudHJ5EisKBmZpZWxkcxgCIAMoDjITLmt1a3NhLnZhbC52MS5GaWVsZFIGZmllbGRz');
+@$core.Deprecated('Use setRequestDescriptor instead')
+const SetRequest$json = const {
+ '1': 'SetRequest',
+ '2': const [
+ const {'1': 'updates', '3': 1, '4': 3, '5': 11, '6': '.kuksa.val.v1.EntryUpdate', '10': 'updates'},
+ ],
+};
+
+/// Descriptor for `SetRequest`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List setRequestDescriptor = $convert.base64Decode('CgpTZXRSZXF1ZXN0EjMKB3VwZGF0ZXMYASADKAsyGS5rdWtzYS52YWwudjEuRW50cnlVcGRhdGVSB3VwZGF0ZXM=');
+@$core.Deprecated('Use setResponseDescriptor instead')
+const SetResponse$json = const {
+ '1': 'SetResponse',
+ '2': const [
+ const {'1': 'error', '3': 1, '4': 1, '5': 11, '6': '.kuksa.val.v1.Error', '10': 'error'},
+ const {'1': 'errors', '3': 2, '4': 3, '5': 11, '6': '.kuksa.val.v1.DataEntryError', '10': 'errors'},
+ ],
+};
+
+/// Descriptor for `SetResponse`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List setResponseDescriptor = $convert.base64Decode('CgtTZXRSZXNwb25zZRIpCgVlcnJvchgBIAEoCzITLmt1a3NhLnZhbC52MS5FcnJvclIFZXJyb3ISNAoGZXJyb3JzGAIgAygLMhwua3Vrc2EudmFsLnYxLkRhdGFFbnRyeUVycm9yUgZlcnJvcnM=');
+@$core.Deprecated('Use subscribeEntryDescriptor instead')
+const SubscribeEntry$json = const {
+ '1': 'SubscribeEntry',
+ '2': const [
+ const {'1': 'path', '3': 1, '4': 1, '5': 9, '10': 'path'},
+ const {'1': 'view', '3': 2, '4': 1, '5': 14, '6': '.kuksa.val.v1.View', '10': 'view'},
+ const {'1': 'fields', '3': 3, '4': 3, '5': 14, '6': '.kuksa.val.v1.Field', '10': 'fields'},
+ ],
+};
+
+/// Descriptor for `SubscribeEntry`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List subscribeEntryDescriptor = $convert.base64Decode('Cg5TdWJzY3JpYmVFbnRyeRISCgRwYXRoGAEgASgJUgRwYXRoEiYKBHZpZXcYAiABKA4yEi5rdWtzYS52YWwudjEuVmlld1IEdmlldxIrCgZmaWVsZHMYAyADKA4yEy5rdWtzYS52YWwudjEuRmllbGRSBmZpZWxkcw==');
+@$core.Deprecated('Use subscribeRequestDescriptor instead')
+const SubscribeRequest$json = const {
+ '1': 'SubscribeRequest',
+ '2': const [
+ const {'1': 'entries', '3': 1, '4': 3, '5': 11, '6': '.kuksa.val.v1.SubscribeEntry', '10': 'entries'},
+ ],
+};
+
+/// Descriptor for `SubscribeRequest`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List subscribeRequestDescriptor = $convert.base64Decode('ChBTdWJzY3JpYmVSZXF1ZXN0EjYKB2VudHJpZXMYASADKAsyHC5rdWtzYS52YWwudjEuU3Vic2NyaWJlRW50cnlSB2VudHJpZXM=');
+@$core.Deprecated('Use subscribeResponseDescriptor instead')
+const SubscribeResponse$json = const {
+ '1': 'SubscribeResponse',
+ '2': const [
+ const {'1': 'updates', '3': 1, '4': 3, '5': 11, '6': '.kuksa.val.v1.EntryUpdate', '10': 'updates'},
+ ],
+};
+
+/// Descriptor for `SubscribeResponse`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List subscribeResponseDescriptor = $convert.base64Decode('ChFTdWJzY3JpYmVSZXNwb25zZRIzCgd1cGRhdGVzGAEgAygLMhkua3Vrc2EudmFsLnYxLkVudHJ5VXBkYXRlUgd1cGRhdGVz');
+@$core.Deprecated('Use getServerInfoRequestDescriptor instead')
+const GetServerInfoRequest$json = const {
+ '1': 'GetServerInfoRequest',
+};
+
+/// Descriptor for `GetServerInfoRequest`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List getServerInfoRequestDescriptor = $convert.base64Decode('ChRHZXRTZXJ2ZXJJbmZvUmVxdWVzdA==');
+@$core.Deprecated('Use getServerInfoResponseDescriptor instead')
+const GetServerInfoResponse$json = const {
+ '1': 'GetServerInfoResponse',
+ '2': const [
+ const {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
+ const {'1': 'version', '3': 2, '4': 1, '5': 9, '10': 'version'},
+ ],
+};
+
+/// Descriptor for `GetServerInfoResponse`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List getServerInfoResponseDescriptor = $convert.base64Decode('ChVHZXRTZXJ2ZXJJbmZvUmVzcG9uc2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9u');
diff --git a/lib/homescreen.dart b/lib/homescreen.dart
index 7501292..be9c7ca 100644
--- a/lib/homescreen.dart
+++ b/lib/homescreen.dart
@@ -1,24 +1,26 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_homescreen/config.dart';
import 'package:grpc/grpc.dart';
import 'package:flutter_homescreen/generated/applauncher.pbgrpc.dart';
import 'package:flutter_homescreen/page_apps.dart';
import 'package:flutter_homescreen/widget_clock.dart';
import 'package:flutter_homescreen/bottom_panel.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_client.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_provider.dart';
enum PageIndex { home, dashboard, hvac, media }
-class Homescreen extends StatefulWidget {
- Homescreen({Key? key, required this.client}) : super(key: key);
- final HttpClient client;
+class Homescreen extends ConsumerStatefulWidget {
+ Homescreen({Key? key}) : super(key: key);
@override
_HomescreenState createState() => _HomescreenState();
}
-class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
+class _HomescreenState extends ConsumerState<Homescreen> with TickerProviderStateMixin {
int _selectedIndex = 0;
int _previousIndex = 0;
@@ -26,6 +28,7 @@ class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
late AppLauncherClient stub;
List<String> apps_stack = [];
static const agl_shell_channel = MethodChannel('flutter/agl_shell');
+ late VssClient vss;
Future<List<AppInfo>> getAppList() async {
var response = await stub.listApplications(ListRequest());
@@ -34,6 +37,7 @@ class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
debugPrint("$info");
}
return response.apps;
+ return [];
}
addAppToStack(String id) {
@@ -90,7 +94,7 @@ class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
}
initState() {
- debugPrint("_HomescreenState.initState!");
+ //debugPrint("_HomescreenState.initState!");
channel = ClientChannel('localhost',
port: 50052,
options: ChannelOptions(credentials: ChannelCredentials.insecure()));
@@ -99,6 +103,9 @@ class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
handleAppStatusEvents();
+ vss = ref.read(vssClientProvider);
+ vss.run();
+
super.initState();
}
@@ -276,16 +283,11 @@ class _HomescreenState extends State<Homescreen> with TickerProviderStateMixin {
child: _childForIndex(_selectedIndex),
),
),
- Stack(children: [
- BottomPanelWidget(
- height: railSize,
- color: NavigationBarTheme.of(context).backgroundColor),
- Align(
- alignment: Alignment.bottomLeft,
- child: GetConfig(client: widget.client))
- ]),
- ],
- ),
+ BottomPanelWidget(
+ height: railSize,
+ color: NavigationBarTheme.of(context).backgroundColor
+ )
+ ])
);
}
}
diff --git a/lib/main.dart b/lib/main.dart
index f5ea0f7..455f54b 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -2,17 +2,14 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_homescreen/homescreen.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:flutter_homescreen/vehicle-signals/viss_config.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
- HttpClient client = await initializeClient();
- runApp(ProviderScope(child: MyApp(client: client)));
+ runApp(ProviderScope(child: MyApp()));
}
class MyApp extends ConsumerWidget {
- MyApp({Key? key, required this.client}) : super(key: key);
- final HttpClient client;
+ MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
@@ -32,7 +29,7 @@ class MyApp extends ConsumerWidget {
color: navBarIconColor,
))),
),
- home: Homescreen(client: client),
+ home: Homescreen(),
);
}
}
diff --git a/lib/vehicle-signals/viss_config.dart b/lib/vehicle-signals/viss_config.dart
deleted file mode 100644
index c2be5ee..0000000
--- a/lib/vehicle-signals/viss_config.dart
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-//import 'dart:convert';
-import 'dart:io';
-
-import 'package:flutter_homescreen/config.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-//import 'package:http/http.dart' as http;
-
-final sockConnectprovider = FutureProvider.family<WebSocket, HttpClient>(
- (ref, client) => connect(client, ref));
-
-Future<HttpClient> initializeClient() async {
- SecurityContext ctx = SecurityContext.defaultContext;
-
- HttpClient client = HttpClient(context: ctx)
- ..findProxy = null
- ..badCertificateCallback = (cert, host, port) {
- return true;
- };
- return client;
-}
-
-Future<WebSocket> connect(HttpClient client, ref) async {
- final config = ref.read(ConfigStateprovider);
- WebSocket socket = await WebSocket.connect(
- "wss://${config.hostname}:${config.port}",
- customClient: client);
- return socket;
-}
diff --git a/lib/vehicle-signals/viss_connected_widget.dart b/lib/vehicle-signals/viss_connected_widget.dart
deleted file mode 100644
index dd3e4aa..0000000
--- a/lib/vehicle-signals/viss_connected_widget.dart
+++ /dev/null
@@ -1,65 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:async';
-import 'dart:io';
-
-import 'package:flutter_homescreen/vehicle-signals/viss_config.dart';
-import 'package:flutter_homescreen/vehicle-signals/viss_methods.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:flutter_homescreen/vehicle-signals/vss_providers.dart';
-
-class VISServerConnectedWidget extends ConsumerStatefulWidget {
- const VISServerConnectedWidget(
- {Key? key, required this.client, required this.socket})
- : super(key: key);
- final WebSocket socket;
- final HttpClient client;
-
- @override
- ConsumerState<VISServerConnectedWidget> createState() =>
- _VISServerConnectedWidgetState();
-}
-
-class _VISServerConnectedWidgetState
- extends ConsumerState<VISServerConnectedWidget> {
- late Timer _timer;
-
- void _updateSocket() {
- ref.read(VISServerSocketProvider.notifier).update(widget.socket);
- }
-
- @override
- void initState() {
- super.initState();
- VISS.init(widget.socket, ref);
- Future.delayed(Duration.zero, () => _updateSocket());
- _timer = Timer.periodic(const Duration(seconds: 2), (timer) {
- if (widget.socket.readyState == 3) {
- ref.refresh(sockConnectprovider(widget.client));
- }
- });
- WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
- widget.socket.listen(
- (data) {
- VISS.parseData(ref, data);
- },
- onError: (e, stk) {
- print(e.toString());
- ref.refresh(sockConnectprovider(widget.client));
- },
- );
- });
- }
-
- @override
- void dispose() {
- super.dispose();
- _timer.cancel();
- widget.socket.close(786887, "Connection lost with server!");
- }
-
- @override
- Widget build(BuildContext context) {
- return Container();
- }
-}
diff --git a/lib/vehicle-signals/viss_connection_widget.dart b/lib/vehicle-signals/viss_connection_widget.dart
deleted file mode 100644
index a2abee7..0000000
--- a/lib/vehicle-signals/viss_connection_widget.dart
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:io';
-import 'package:flutter_homescreen/vehicle-signals/viss_config.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-
-import 'viss_connected_widget.dart';
-
-class VISServerConnectionWidget extends ConsumerWidget {
- VISServerConnectionWidget({Key? key, required this.client}) : super(key: key);
- final HttpClient client;
- late WebSocket socket;
-
- @override
- Widget build(BuildContext context, ref) {
- final sockConnect = ref.watch(sockConnectprovider(client));
-
- return sockConnect.when(
- data: (socket) {
- this.socket = socket;
- this.socket.pingInterval = const Duration(seconds: 2);
- return VISServerConnectedWidget(client: client, socket: this.socket);
- },
- error: (e, stk) {
- print(e);
- ref.refresh(sockConnectprovider(client));
- return Container(
- child: const Text('Connection Error',
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.bold,
- color: Colors.white)));
- },
- loading: () => Container(
- child: Text('Connected',
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.bold,
- color: Colors.white))));
- }
-}
diff --git a/lib/vehicle-signals/viss_methods.dart b/lib/vehicle-signals/viss_methods.dart
deleted file mode 100644
index 8adcc80..0000000
--- a/lib/vehicle-signals/viss_methods.dart
+++ /dev/null
@@ -1,116 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:flutter_homescreen/vehicle-signals/vss_providers.dart';
-import 'package:flutter_homescreen/vehicle-signals/vss_path.dart';
-import 'package:flutter_homescreen/config.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-
-class VISS {
- static const requestId = "test-id";
-
- static void init(WebSocket socket, WidgetRef ref) {
- authorize(socket, ref);
- subscribe(socket, ref, VSSPath.vehicleMediaVolume);
- }
-
- static void update(WebSocket socket, WidgetRef ref) {
- get(socket, ref, VSSPath.vehicleMediaVolume);
- }
-
- static void authorize(WebSocket socket, WidgetRef ref) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "authorize",
- "tokens": config.kuksaAuthToken,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void get(WebSocket socket, WidgetRef ref, String path) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "get",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void set(WebSocket socket, WidgetRef ref, String path, String value) {
- final config = ref.read(ConfigStateprovider);
- Map<String, dynamic> map = {
- "action": "set",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId,
- "value": value
- };
- socket.add(jsonEncode(map));
- }
-
- static void subscribe(WebSocket socket, WidgetRef ref, String path) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "subscribe",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void parseData(WidgetRef ref, String data) {
- Map<String, dynamic> dataMap = jsonDecode(data);
- if (dataMap["action"] == "subscription" || dataMap["action"] == "get") {
- if (dataMap.containsKey("data")) {
- if ((dataMap["data"] as Map<String, dynamic>).containsKey("dp") &&
- (dataMap["data"] as Map<String, dynamic>).containsKey("path")) {
- String path = dataMap["data"]["path"];
- Map<String, dynamic> dp = dataMap["data"]["dp"];
- if (dp.containsKey("value")) {
- if (dp["value"] != "---") {
- switch (path) {
- case VSSPath.vehicleMediaVolume:
- ref
- .read(vehicleSignalMediaVolumeProvider.notifier)
- .update(volume: dp["value"]);
- break;
- case VSSPath.vehicleInsideTemperature:
- ref
- .read(vehicleSignalInsideTempProvider.notifier)
- .update(temp: dp["value"]);
- break;
- case VSSPath.vehicleOutsideTemperature:
- ref
- .read(vehicleSignalOutsideTempProvider.notifier)
- .update(temp: dp["value"]);
- break;
- default:
- break;
- }
- } else {
- print("ERROR: Invalid VIS response, data not available");
- }
- } else {
- print("ERROR: Invalid VIS response, no 'value' key");
- }
- } else if ((!dataMap["data"] as Map<String, dynamic>)
- .containsKey("path")) {
- print("ERROR: Invalid VIS response, no 'path' key");
- } else if ((dataMap["data"] as Map<String, dynamic>)
- .containsKey("dp")) {
- print("ERROR: Invalid VIS response, no 'dp' key");
- }
- } else {
- print("ERROR: Invalid VIS response, no 'data' key");
- }
- }
- }
-}
diff --git a/lib/vehicle-signals/vss_client.dart b/lib/vehicle-signals/vss_client.dart
new file mode 100644
index 0000000..d733c92
--- /dev/null
+++ b/lib/vehicle-signals/vss_client.dart
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: Apache-2.0
+import 'dart:io';
+import 'package:meta/meta.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:grpc/grpc.dart';
+import 'package:flutter_homescreen/generated/kuksa/val/v1/val.pbgrpc.dart';
+import 'package:flutter_homescreen/generated/kuksa/val/v1/types.pb.dart';
+import 'package:flutter_homescreen/config.dart';
+
+abstract class VssClient {
+ final KuksaConfig config;
+ final ClientChannel channel;
+ final VALClient stub;
+ final Ref ref;
+
+ // Extenders will likely override this
+ final List<String> signals = [];
+
+ VssClient({required this.config, required this.channel, required this.stub, required this.ref});
+
+ // Abstract method extenders must implement
+ void handleSignalUpdates(EntryUpdate update);
+
+ void run() async {
+ if (signals.isEmpty)
+ return;
+
+ var request = SubscribeRequest();
+ for (var i = 0; i < signals.length; i++) {
+ var entry = SubscribeEntry();
+ entry.path = signals[i];
+ entry.fields.add(Field.FIELD_PATH);
+ entry.fields.add(Field.FIELD_VALUE);
+ request.entries.add(entry);
+ }
+
+ try {
+ Map<String, String> metadata = {};
+ if (config.authorization.isNotEmpty) {
+ metadata = {'authorization': "Bearer ${config.authorization}" };
+ }
+ var responseStream = stub.subscribe(request, options: CallOptions(metadata: metadata));
+ await for (var response in responseStream) {
+ for (var update in response.updates) {
+ if (!(update.hasEntry() && update.entry.hasPath()))
+ continue;
+ handleSignalUpdates(update);
+ }
+ }
+ } catch (e) {
+ print(e);
+ }
+ }
+
+ void setUint32(String path, int value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..uint32 = value;
+ set(path, dp, actuator);
+ }
+
+ void setInt32(String path, int value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..int32 = value;
+ set(path, dp, actuator);
+ }
+
+ void setBool(String path, bool value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..bool_12 = value;
+ set(path, dp, actuator);
+ }
+
+ void setString(String path, String value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..string = value;
+ set(path, dp, actuator);
+ }
+
+ void setFloat(String path, double value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..float = value;
+ set(path, dp, actuator);
+ }
+
+ void setDouble(String path, double value, [bool actuator = true]) async {
+ var dp = Datapoint()
+ ..double_18 = value;
+ set(path, dp, actuator);
+ }
+
+ void set(String path, Datapoint dp, bool actuator) async {
+ var entry = DataEntry()
+ ..path = path;
+ var update = EntryUpdate();
+ if (actuator) {
+ entry.actuatorTarget = dp;
+ update.fields.add(Field.FIELD_ACTUATOR_TARGET);
+ } else {
+ entry.value = dp;
+ update.fields.add(Field.FIELD_VALUE);
+ }
+ update.entry = entry;
+ var request = SetRequest();
+ request.updates.add(update);
+ Map<String, String> metadata = {};
+ if (config.authorization.isNotEmpty) {
+ metadata = {'authorization': "Bearer ${config.authorization}" };
+ }
+ await stub.set(request, options: CallOptions(metadata: metadata));
+ }
+
+}
diff --git a/lib/vehicle-signals/vss_provider.dart b/lib/vehicle-signals/vss_provider.dart
new file mode 100644
index 0000000..e0fa1b8
--- /dev/null
+++ b/lib/vehicle-signals/vss_provider.dart
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: Apache-2.0
+import 'dart:io';
+import 'package:meta/meta.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:grpc/grpc.dart';
+import 'package:flutter_homescreen/generated/kuksa/val/v1/val.pbgrpc.dart';
+import 'package:flutter_homescreen/generated/kuksa/val/v1/types.pb.dart';
+import 'package:flutter_homescreen/config.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_client.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_path.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_signal_providers.dart';
+
+class HomescreenVssClient extends VssClient {
+ @override
+ final List<String> signals = [
+ VSSPath.vehicleMediaVolume,
+ VSSPath.vehicleInsideTemperature,
+ VSSPath.vehicleOutsideTemperature
+ ];
+
+ HomescreenVssClient({required super.config, required super.channel, required super.stub, required super.ref});
+
+ @override
+ void handleSignalUpdates(EntryUpdate update) {
+ switch (update.entry.path) {
+ case VSSPath.vehicleMediaVolume:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalMediaVolumeProvider.notifier)
+ .update(volume: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleInsideTemperature:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalInsideTempProvider.notifier)
+ .update(temp: update.entry.value.float);
+ }
+ break;
+ case VSSPath.vehicleOutsideTemperature:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalOutsideTempProvider.notifier)
+ .update(temp: update.entry.value.float);
+ }
+ break;
+ default:
+ print("ERROR: Unexpected path ${update.entry.path}");
+ break;
+ }
+ }
+}
+
+final vssClientProvider = Provider((ref) {
+ var config = ref.read(kuksaConfigProvider);
+ debugPrint("Using ${config.hostname}:${config.port}");
+ ChannelCredentials creds;
+ if (config.use_tls && config.ca_certificate.isNotEmpty) {
+ print("Using TLS");
+ if (config.tls_server_name.isNotEmpty)
+ creds = ChannelCredentials.secure(certificates: config.ca_certificate, authority: config.tls_server_name);
+ else
+ creds = ChannelCredentials.secure(certificates: config.ca_certificate);
+ } else {
+ creds = ChannelCredentials.insecure();
+ }
+ final channel = ClientChannel(config.hostname,
+ port: config.port,
+ options: ChannelOptions(credentials: creds));
+
+ final stub = VALClient(channel);
+
+ return HomescreenVssClient(config: config, channel: channel, stub: stub, ref: ref);
+});
diff --git a/lib/vehicle-signals/vss_providers.dart b/lib/vehicle-signals/vss_signal_providers.dart
index 630a273..8f0bfc1 100644
--- a/lib/vehicle-signals/vss_providers.dart
+++ b/lib/vehicle-signals/vss_signal_providers.dart
@@ -1,35 +1,8 @@
// SPDX-License-Identifier: Apache-2.0
-//import 'dart:ffi';
import 'dart:io';
import 'package:meta/meta.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-@immutable
-class VISServerSocket {
- const VISServerSocket({required this.socket});
-
- final WebSocket? socket;
-
- VISServerSocket copyWith({WebSocket? socket}) {
- return VISServerSocket(socket: socket ?? this.socket);
- }
-}
-
-class VISServerSocketNotifier extends StateNotifier<VISServerSocket> {
- VISServerSocketNotifier() : super(_initialValue);
-
- static final VISServerSocket _initialValue = VISServerSocket(socket: null);
-
- void update(WebSocket socket) {
- state = state.copyWith(socket: socket);
- }
-}
-
-final VISServerSocketProvider =
- StateNotifierProvider<VISServerSocketNotifier, VISServerSocket>((ref) {
- return VISServerSocketNotifier();
-});
-
// Media Volume
@immutable
@@ -60,11 +33,6 @@ class VehicleSignalMediaVolumeNotifier
}
}
-//final vehicleSignalMediaVolumeProvider = StateNotifierProvider<
-// VehicleSignalMediaVolumeNotifier, VehicleSignalMediaVolume>((ref) {
-// return VehicleSignalMediaVolumeNotifier();
-//});
-
final vehicleSignalMediaVolumeProvider = StateNotifierProvider<
VehicleSignalMediaVolumeNotifier,
VehicleSignalMediaVolume>((ref) => VehicleSignalMediaVolumeNotifier());
diff --git a/lib/volume_slider.dart b/lib/volume_slider.dart
index 0665491..25c1306 100644
--- a/lib/volume_slider.dart
+++ b/lib/volume_slider.dart
@@ -2,9 +2,9 @@ import 'dart:io';
import 'package:async/async.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:flutter_homescreen/vehicle-signals/vss_providers.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_signal_providers.dart';
import 'package:flutter_homescreen/vehicle-signals/vss_path.dart';
-import 'package:flutter_homescreen/vehicle-signals/viss_methods.dart';
+import 'package:flutter_homescreen/vehicle-signals/vss_provider.dart';
class VolumeSlider extends ConsumerWidget {
final Color thumbColor;
@@ -40,10 +40,9 @@ class VolumeSlider extends ConsumerWidget {
ref
.read(vehicleSignalMediaVolumeProvider.notifier)
.update(volume: value.toInt());
- WebSocket? s = ref.read(VISServerSocketProvider).socket;
- if (s != null) {
- VISS.set(
- s, ref, VSSPath.vehicleMediaVolume, value.toInt().toString());
+ var vss = ref.read(vssClientProvider);
+ if (vss != null) {
+ vss.setUint32(VSSPath.vehicleMediaVolume, value.toInt());
}
});
}