|
|
|
|
@ -378,7 +378,7 @@ encode_msg_service_metrics(#service_metrics{service_id = F1, metrics = F2}, Bin,
|
|
|
|
|
encode_msg_data(Msg, TrUserData) -> encode_msg_data(Msg, <<>>, TrUserData).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
encode_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, fields = F5}, Bin, TrUserData) ->
|
|
|
|
|
encode_msg_data(#data{service_id = F1, device_uuid = F2, timestamp = F3, tags = F4, fields = F5}, Bin, TrUserData) ->
|
|
|
|
|
B1 = if F1 == undefined -> Bin;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
@ -418,9 +418,9 @@ encode_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, f
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF5 = id(F5, TrUserData),
|
|
|
|
|
case iolist_size(TrF5) of
|
|
|
|
|
0 -> B4;
|
|
|
|
|
_ -> e_type_bytes(TrF5, <<B4/binary, 42>>, TrUserData)
|
|
|
|
|
case is_empty_string(TrF5) of
|
|
|
|
|
true -> B4;
|
|
|
|
|
false -> e_type_string(TrF5, <<B4/binary, 42>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end.
|
|
|
|
|
@ -643,23 +643,33 @@ encode_msg_feedback_phase(#feedback_phase{task_id = F1, timestamp = F2, phase =
|
|
|
|
|
encode_msg_event(Msg, TrUserData) -> encode_msg_event(Msg, <<>>, TrUserData).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
encode_msg_event(#event{event_type = F1, params = F2}, Bin, TrUserData) ->
|
|
|
|
|
encode_msg_event(#event{service_id = F1, event_type = F2, params = F3}, Bin, TrUserData) ->
|
|
|
|
|
B1 = if F1 == undefined -> Bin;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF1 = id(F1, TrUserData),
|
|
|
|
|
if TrF1 =:= 0 -> Bin;
|
|
|
|
|
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
|
|
|
|
case is_empty_string(TrF1) of
|
|
|
|
|
true -> Bin;
|
|
|
|
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
if F2 == undefined -> B1;
|
|
|
|
|
B2 = if F2 == undefined -> B1;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF2 = id(F2, TrUserData),
|
|
|
|
|
case is_empty_string(TrF2) of
|
|
|
|
|
true -> B1;
|
|
|
|
|
false -> e_type_string(TrF2, <<B1/binary, 18>>, TrUserData)
|
|
|
|
|
if TrF2 =:= 0 -> B1;
|
|
|
|
|
true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
if F3 == undefined -> B2;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF3 = id(F3, TrUserData),
|
|
|
|
|
case is_empty_string(TrF3) of
|
|
|
|
|
true -> B2;
|
|
|
|
|
false -> e_type_string(TrF3, <<B2/binary, 26>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end.
|
|
|
|
|
@ -667,23 +677,33 @@ encode_msg_event(#event{event_type = F1, params = F2}, Bin, TrUserData) ->
|
|
|
|
|
encode_msg_ai_event(Msg, TrUserData) -> encode_msg_ai_event(Msg, <<>>, TrUserData).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
encode_msg_ai_event(#ai_event{event_type = F1, params = F2}, Bin, TrUserData) ->
|
|
|
|
|
encode_msg_ai_event(#ai_event{service_id = F1, event_type = F2, params = F3}, Bin, TrUserData) ->
|
|
|
|
|
B1 = if F1 == undefined -> Bin;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF1 = id(F1, TrUserData),
|
|
|
|
|
if TrF1 =:= 0 -> Bin;
|
|
|
|
|
true -> e_varint(TrF1, <<Bin/binary, 8>>, TrUserData)
|
|
|
|
|
case is_empty_string(TrF1) of
|
|
|
|
|
true -> Bin;
|
|
|
|
|
false -> e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
if F2 == undefined -> B1;
|
|
|
|
|
B2 = if F2 == undefined -> B1;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF2 = id(F2, TrUserData),
|
|
|
|
|
case is_empty_string(TrF2) of
|
|
|
|
|
true -> B1;
|
|
|
|
|
false -> e_type_string(TrF2, <<B1/binary, 18>>, TrUserData)
|
|
|
|
|
if TrF2 =:= 0 -> B1;
|
|
|
|
|
true -> e_varint(TrF2, <<B1/binary, 16>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
if F3 == undefined -> B2;
|
|
|
|
|
true ->
|
|
|
|
|
begin
|
|
|
|
|
TrF3 = id(F3, TrUserData),
|
|
|
|
|
case is_empty_string(TrF3) of
|
|
|
|
|
true -> B2;
|
|
|
|
|
false -> e_type_string(TrF3, <<B2/binary, 26>>, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end.
|
|
|
|
|
@ -1333,21 +1353,21 @@ skip_64_service_metrics(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData
|
|
|
|
|
|
|
|
|
|
decode_msg_data(Bin, TrUserData) -> dfp_read_field_def_data(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), 'tr_decode_init_default_data.tags'([], TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
|
|
|
|
|
dfp_read_field_def_data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_device_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_service_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_at(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_device_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_tags(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_fields(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dfp_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, F@_5, TrUserData) -> #data{device_uuid = F@_1, service_name = F@_2, at = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = F@_5};
|
|
|
|
|
dfp_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, F@_5, TrUserData) -> #data{service_id = F@_1, device_uuid = F@_2, timestamp = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = F@_5};
|
|
|
|
|
dfp_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData).
|
|
|
|
|
|
|
|
|
|
dg_read_field_def_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
dg_read_field_def_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
Key = X bsl N + Acc,
|
|
|
|
|
case Key of
|
|
|
|
|
10 -> d_field_data_device_uuid(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
18 -> d_field_data_service_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
24 -> d_field_data_at(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
10 -> d_field_data_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
18 -> d_field_data_device_uuid(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
24 -> d_field_data_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
34 -> d_field_data_tags(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
42 -> d_field_data_fields(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
_ ->
|
|
|
|
|
@ -1359,20 +1379,20 @@ dg_read_field_def_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F
|
|
|
|
|
5 -> skip_32_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end;
|
|
|
|
|
dg_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, F@_5, TrUserData) -> #data{device_uuid = F@_1, service_name = F@_2, at = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = F@_5}.
|
|
|
|
|
dg_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, F@_5, TrUserData) -> #data{service_id = F@_1, device_uuid = F@_2, timestamp = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = F@_5}.
|
|
|
|
|
|
|
|
|
|
d_field_data_device_uuid(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_device_uuid(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_device_uuid(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
d_field_data_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_data(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData).
|
|
|
|
|
|
|
|
|
|
d_field_data_service_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_service_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_service_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
d_field_data_device_uuid(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_device_uuid(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_device_uuid(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_data(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData).
|
|
|
|
|
|
|
|
|
|
d_field_data_at(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_at(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_at(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
d_field_data_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData);
|
|
|
|
|
d_field_data_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = {begin <<Res:32/signed-native>> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest},
|
|
|
|
|
dfp_read_field_def_data(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData).
|
|
|
|
|
|
|
|
|
|
@ -1760,107 +1780,121 @@ skip_32_feedback_phase(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4,
|
|
|
|
|
|
|
|
|
|
skip_64_feedback_phase(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData).
|
|
|
|
|
|
|
|
|
|
decode_msg_event(Bin, TrUserData) -> dfp_read_field_def_event(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
decode_msg_event(Bin, TrUserData) -> dfp_read_field_def_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
|
|
|
|
|
dfp_read_field_def_event(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dfp_read_field_def_event(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_event_params(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dfp_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #event{event_type = F@_1, params = F@_2};
|
|
|
|
|
dfp_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_event(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #event{service_id = F@_1, event_type = F@_2, params = F@_3};
|
|
|
|
|
dfp_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
dg_read_field_def_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dg_read_field_def_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
dg_read_field_def_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dg_read_field_def_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
Key = X bsl N + Acc,
|
|
|
|
|
case Key of
|
|
|
|
|
8 -> d_field_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
|
|
|
|
18 -> d_field_event_params(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
|
|
|
|
10 -> d_field_event_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
16 -> d_field_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
26 -> d_field_event_params(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
_ ->
|
|
|
|
|
case Key band 7 of
|
|
|
|
|
0 -> skip_varint_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
1 -> skip_64_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
2 -> skip_length_delimited_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
3 -> skip_group_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
5 -> skip_32_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData)
|
|
|
|
|
0 -> skip_varint_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
1 -> skip_64_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
2 -> skip_length_delimited_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
3 -> skip_group_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
5 -> skip_32_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end;
|
|
|
|
|
dg_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #event{event_type = F@_1, params = F@_2}.
|
|
|
|
|
dg_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #event{service_id = F@_1, event_type = F@_2, params = F@_3}.
|
|
|
|
|
|
|
|
|
|
d_field_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
d_field_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
|
|
|
|
dfp_read_field_def_event(RestF, 0, 0, F, NewFValue, F@_2, TrUserData).
|
|
|
|
|
|
|
|
|
|
d_field_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
d_field_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) ->
|
|
|
|
|
d_field_event_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_event_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_event(RestF, 0, 0, F, F@_1, NewFValue, TrUserData).
|
|
|
|
|
dfp_read_field_def_event(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_varint_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
skip_varint_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
d_field_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
|
|
|
|
dfp_read_field_def_event(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_length_delimited_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
skip_length_delimited_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
d_field_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_event(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_varint_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
skip_varint_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_length_delimited_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
skip_length_delimited_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
Length = X bsl N + Acc,
|
|
|
|
|
<<_:Length/binary, Rest2/binary>> = Rest,
|
|
|
|
|
dfp_read_field_def_event(Rest2, 0, 0, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_event(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_group_event(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
skip_group_event(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
{_, Rest} = read_group(Bin, FNum),
|
|
|
|
|
dfp_read_field_def_event(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_event(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_32_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
skip_32_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_64_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
skip_64_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
decode_msg_ai_event(Bin, TrUserData) -> dfp_read_field_def_ai_event(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
decode_msg_ai_event(Bin, TrUserData) -> dfp_read_field_def_ai_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
|
|
|
|
|
dfp_read_field_def_ai_event(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ai_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dfp_read_field_def_ai_event(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ai_event_params(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dfp_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #ai_event{event_type = F@_1, params = F@_2};
|
|
|
|
|
dfp_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_ai_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_ai_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_ai_event(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dfp_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #ai_event{service_id = F@_1, event_type = F@_2, params = F@_3};
|
|
|
|
|
dfp_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
dg_read_field_def_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
dg_read_field_def_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
dg_read_field_def_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
dg_read_field_def_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
Key = X bsl N + Acc,
|
|
|
|
|
case Key of
|
|
|
|
|
8 -> d_field_ai_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
|
|
|
|
18 -> d_field_ai_event_params(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
|
|
|
|
10 -> d_field_ai_event_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
16 -> d_field_ai_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
26 -> d_field_ai_event_params(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
_ ->
|
|
|
|
|
case Key band 7 of
|
|
|
|
|
0 -> skip_varint_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
1 -> skip_64_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
2 -> skip_length_delimited_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
3 -> skip_group_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
|
|
|
|
5 -> skip_32_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData)
|
|
|
|
|
0 -> skip_varint_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
1 -> skip_64_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
2 -> skip_length_delimited_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
3 -> skip_group_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
5 -> skip_32_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData)
|
|
|
|
|
end
|
|
|
|
|
end;
|
|
|
|
|
dg_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #ai_event{event_type = F@_1, params = F@_2}.
|
|
|
|
|
dg_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #ai_event{service_id = F@_1, event_type = F@_2, params = F@_3}.
|
|
|
|
|
|
|
|
|
|
d_field_ai_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ai_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
d_field_ai_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
|
|
|
|
dfp_read_field_def_ai_event(RestF, 0, 0, F, NewFValue, F@_2, TrUserData).
|
|
|
|
|
|
|
|
|
|
d_field_ai_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ai_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
d_field_ai_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) ->
|
|
|
|
|
d_field_ai_event_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_ai_event_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, NewFValue, TrUserData).
|
|
|
|
|
dfp_read_field_def_ai_event(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_varint_ai_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
skip_varint_ai_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
d_field_ai_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_ai_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest},
|
|
|
|
|
dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_length_delimited_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
|
|
|
|
skip_length_delimited_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
d_field_ai_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
d_field_ai_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) ->
|
|
|
|
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
|
|
|
|
dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_varint_ai_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
skip_varint_ai_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_length_delimited_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData);
|
|
|
|
|
skip_length_delimited_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
Length = X bsl N + Acc,
|
|
|
|
|
<<_:Length/binary, Rest2/binary>> = Rest,
|
|
|
|
|
dfp_read_field_def_ai_event(Rest2, 0, 0, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_ai_event(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_group_ai_event(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) ->
|
|
|
|
|
skip_group_ai_event(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) ->
|
|
|
|
|
{_, Rest} = read_group(Bin, FNum),
|
|
|
|
|
dfp_read_field_def_ai_event(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData).
|
|
|
|
|
dfp_read_field_def_ai_event(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_32_ai_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
skip_32_ai_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
skip_64_ai_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
|
|
|
|
skip_64_ai_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData).
|
|
|
|
|
|
|
|
|
|
'decode_msg_map<string,string>'(Bin, TrUserData) -> 'dfp_read_field_def_map<string,string>'(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData).
|
|
|
|
|
|
|
|
|
|
@ -2104,19 +2138,19 @@ merge_msg_service_metrics(#service_metrics{service_id = PFservice_id, metrics =
|
|
|
|
|
end}.
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,merge_msg_data/3}).
|
|
|
|
|
merge_msg_data(#data{device_uuid = PFdevice_uuid, service_name = PFservice_name, at = PFat, tags = PFtags, fields = PFfields}, #data{device_uuid = NFdevice_uuid, service_name = NFservice_name, at = NFat, tags = NFtags, fields = NFfields},
|
|
|
|
|
TrUserData) ->
|
|
|
|
|
#data{device_uuid =
|
|
|
|
|
merge_msg_data(#data{service_id = PFservice_id, device_uuid = PFdevice_uuid, timestamp = PFtimestamp, tags = PFtags, fields = PFfields},
|
|
|
|
|
#data{service_id = NFservice_id, device_uuid = NFdevice_uuid, timestamp = NFtimestamp, tags = NFtags, fields = NFfields}, TrUserData) ->
|
|
|
|
|
#data{service_id =
|
|
|
|
|
if NFservice_id =:= undefined -> PFservice_id;
|
|
|
|
|
true -> NFservice_id
|
|
|
|
|
end,
|
|
|
|
|
device_uuid =
|
|
|
|
|
if NFdevice_uuid =:= undefined -> PFdevice_uuid;
|
|
|
|
|
true -> NFdevice_uuid
|
|
|
|
|
end,
|
|
|
|
|
service_name =
|
|
|
|
|
if NFservice_name =:= undefined -> PFservice_name;
|
|
|
|
|
true -> NFservice_name
|
|
|
|
|
end,
|
|
|
|
|
at =
|
|
|
|
|
if NFat =:= undefined -> PFat;
|
|
|
|
|
true -> NFat
|
|
|
|
|
timestamp =
|
|
|
|
|
if NFtimestamp =:= undefined -> PFtimestamp;
|
|
|
|
|
true -> NFtimestamp
|
|
|
|
|
end,
|
|
|
|
|
tags =
|
|
|
|
|
if PFtags /= undefined, NFtags /= undefined -> 'tr_merge_data.tags'(PFtags, NFtags, TrUserData);
|
|
|
|
|
@ -2234,8 +2268,12 @@ merge_msg_feedback_phase(#feedback_phase{task_id = PFtask_id, timestamp = PFtime
|
|
|
|
|
end}.
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,merge_msg_event/3}).
|
|
|
|
|
merge_msg_event(#event{event_type = PFevent_type, params = PFparams}, #event{event_type = NFevent_type, params = NFparams}, _) ->
|
|
|
|
|
#event{event_type =
|
|
|
|
|
merge_msg_event(#event{service_id = PFservice_id, event_type = PFevent_type, params = PFparams}, #event{service_id = NFservice_id, event_type = NFevent_type, params = NFparams}, _) ->
|
|
|
|
|
#event{service_id =
|
|
|
|
|
if NFservice_id =:= undefined -> PFservice_id;
|
|
|
|
|
true -> NFservice_id
|
|
|
|
|
end,
|
|
|
|
|
event_type =
|
|
|
|
|
if NFevent_type =:= undefined -> PFevent_type;
|
|
|
|
|
true -> NFevent_type
|
|
|
|
|
end,
|
|
|
|
|
@ -2245,8 +2283,12 @@ merge_msg_event(#event{event_type = PFevent_type, params = PFparams}, #event{eve
|
|
|
|
|
end}.
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,merge_msg_ai_event/3}).
|
|
|
|
|
merge_msg_ai_event(#ai_event{event_type = PFevent_type, params = PFparams}, #ai_event{event_type = NFevent_type, params = NFparams}, _) ->
|
|
|
|
|
#ai_event{event_type =
|
|
|
|
|
merge_msg_ai_event(#ai_event{service_id = PFservice_id, event_type = PFevent_type, params = PFparams}, #ai_event{service_id = NFservice_id, event_type = NFevent_type, params = NFparams}, _) ->
|
|
|
|
|
#ai_event{service_id =
|
|
|
|
|
if NFservice_id =:= undefined -> PFservice_id;
|
|
|
|
|
true -> NFservice_id
|
|
|
|
|
end,
|
|
|
|
|
event_type =
|
|
|
|
|
if NFevent_type =:= undefined -> PFevent_type;
|
|
|
|
|
true -> NFevent_type
|
|
|
|
|
end,
|
|
|
|
|
@ -2397,19 +2439,19 @@ v_msg_service_metrics(X, Path, _TrUserData) -> mk_type_error({expected_msg, serv
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,v_msg_data/3}).
|
|
|
|
|
-dialyzer({nowarn_function,v_msg_data/3}).
|
|
|
|
|
v_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, fields = F5}, Path, TrUserData) ->
|
|
|
|
|
v_msg_data(#data{service_id = F1, device_uuid = F2, timestamp = F3, tags = F4, fields = F5}, Path, TrUserData) ->
|
|
|
|
|
if F1 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F1, [device_uuid | Path], TrUserData)
|
|
|
|
|
true -> v_type_string(F1, [service_id | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F2 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F2, [service_name | Path], TrUserData)
|
|
|
|
|
true -> v_type_string(F2, [device_uuid | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F3 == undefined -> ok;
|
|
|
|
|
true -> v_type_int32(F3, [at | Path], TrUserData)
|
|
|
|
|
true -> v_type_int32(F3, [timestamp | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
'v_map<string,string>'(F4, [tags | Path], TrUserData),
|
|
|
|
|
if F5 == undefined -> ok;
|
|
|
|
|
true -> v_type_bytes(F5, [fields | Path], TrUserData)
|
|
|
|
|
true -> v_type_string(F5, [fields | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
ok;
|
|
|
|
|
v_msg_data(X, Path, _TrUserData) -> mk_type_error({expected_msg, data}, X, Path).
|
|
|
|
|
@ -2506,24 +2548,30 @@ v_msg_feedback_phase(X, Path, _TrUserData) -> mk_type_error({expected_msg, feedb
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,v_msg_event/3}).
|
|
|
|
|
-dialyzer({nowarn_function,v_msg_event/3}).
|
|
|
|
|
v_msg_event(#event{event_type = F1, params = F2}, Path, TrUserData) ->
|
|
|
|
|
v_msg_event(#event{service_id = F1, event_type = F2, params = F3}, Path, TrUserData) ->
|
|
|
|
|
if F1 == undefined -> ok;
|
|
|
|
|
true -> v_type_uint32(F1, [event_type | Path], TrUserData)
|
|
|
|
|
true -> v_type_string(F1, [service_id | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F2 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F2, [params | Path], TrUserData)
|
|
|
|
|
true -> v_type_uint32(F2, [event_type | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F3 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F3, [params | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
ok;
|
|
|
|
|
v_msg_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, event}, X, Path).
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,v_msg_ai_event/3}).
|
|
|
|
|
-dialyzer({nowarn_function,v_msg_ai_event/3}).
|
|
|
|
|
v_msg_ai_event(#ai_event{event_type = F1, params = F2}, Path, TrUserData) ->
|
|
|
|
|
v_msg_ai_event(#ai_event{service_id = F1, event_type = F2, params = F3}, Path, TrUserData) ->
|
|
|
|
|
if F1 == undefined -> ok;
|
|
|
|
|
true -> v_type_uint32(F1, [event_type | Path], TrUserData)
|
|
|
|
|
true -> v_type_string(F1, [service_id | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F2 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F2, [params | Path], TrUserData)
|
|
|
|
|
true -> v_type_uint32(F2, [event_type | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
if F3 == undefined -> ok;
|
|
|
|
|
true -> v_type_string(F3, [params | Path], TrUserData)
|
|
|
|
|
end,
|
|
|
|
|
ok;
|
|
|
|
|
v_msg_ai_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, ai_event}, X, Path).
|
|
|
|
|
@ -2568,12 +2616,6 @@ v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) ->
|
|
|
|
|
end;
|
|
|
|
|
v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path).
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,v_type_bytes/3}).
|
|
|
|
|
-dialyzer({nowarn_function,v_type_bytes/3}).
|
|
|
|
|
v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok;
|
|
|
|
|
v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok;
|
|
|
|
|
v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path).
|
|
|
|
|
|
|
|
|
|
-compile({nowarn_unused_function,'v_map<string,string>'/3}).
|
|
|
|
|
-dialyzer({nowarn_function,'v_map<string,string>'/3}).
|
|
|
|
|
'v_map<string,string>'(KVs, Path, TrUserData) when is_list(KVs) ->
|
|
|
|
|
@ -2685,11 +2727,11 @@ get_msg_defs() ->
|
|
|
|
|
{{msg, service_arguments}, [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = args, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, service_metrics}, [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = metrics, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, data},
|
|
|
|
|
[#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = service_name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = at, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []},
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = device_uuid, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = timestamp, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = tags, fnum = 4, rnum = 5, type = {map, string, string}, occurrence = repeated, opts = []},
|
|
|
|
|
#field{name = fields, fnum = 5, rnum = 6, type = bytes, occurrence = optional, opts = []}]},
|
|
|
|
|
#field{name = fields, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, ping},
|
|
|
|
|
[#field{name = adcode, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = boot_time, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
@ -2715,8 +2757,14 @@ get_msg_defs() ->
|
|
|
|
|
#field{name = phase, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = code, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = message, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, event}, [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, ai_event}, [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}].
|
|
|
|
|
{{msg, event},
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]},
|
|
|
|
|
{{msg, ai_event},
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get_msg_names() -> [auth_request, auth_reply, activate_push, deploy, efka_response, topic_message, service_arguments, service_metrics, data, ping, service_inform, feedback_phase, event, ai_event].
|
|
|
|
|
@ -2765,11 +2813,11 @@ find_msg_def(topic_message) -> [#field{name = topic, fnum = 1, rnum = 2, type =
|
|
|
|
|
find_msg_def(service_arguments) -> [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = args, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(service_metrics) -> [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = metrics, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(data) ->
|
|
|
|
|
[#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = service_name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = at, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []},
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = device_uuid, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = timestamp, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = tags, fnum = 4, rnum = 5, type = {map, string, string}, occurrence = repeated, opts = []},
|
|
|
|
|
#field{name = fields, fnum = 5, rnum = 6, type = bytes, occurrence = optional, opts = []}];
|
|
|
|
|
#field{name = fields, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(ping) ->
|
|
|
|
|
[#field{name = adcode, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = boot_time, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
@ -2795,8 +2843,14 @@ find_msg_def(feedback_phase) ->
|
|
|
|
|
#field{name = phase, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = code, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = message, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(event) -> [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(ai_event) -> [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(event) ->
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(ai_event) ->
|
|
|
|
|
[#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []},
|
|
|
|
|
#field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}];
|
|
|
|
|
find_msg_def(_) -> error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|