fix
This commit is contained in:
parent
11ecea63b7
commit
6af04c3e7a
@ -76,7 +76,7 @@
|
|||||||
cpu_temperature = 0.0 :: float() | integer() | infinity | '-infinity' | nan | undefined, % = 10, optional
|
cpu_temperature = 0.0 :: float() | integer() | infinity | '-infinity' | nan | undefined, % = 10, optional
|
||||||
disk = [] :: [integer()] | undefined, % = 11, repeated, 32 bits
|
disk = [] :: [integer()] | undefined, % = 11, repeated, 32 bits
|
||||||
memory = [] :: [integer()] | undefined, % = 12, repeated, 32 bits
|
memory = [] :: [integer()] | undefined, % = 12, repeated, 32 bits
|
||||||
interfaces = [] :: [iodata()] | undefined % = 13, repeated
|
interfaces = <<>> :: unicode:chardata() | undefined % = 13, optional
|
||||||
}).
|
}).
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,10 @@
|
|||||||
data(ServiceName, DeviceUUID, At, Tags, Fields) when is_binary(ServiceName), is_binary(DeviceUUID), is_integer(At), is_map(Tags), is_binary(Fields) ->
|
data(ServiceName, DeviceUUID, At, Tags, Fields) when is_binary(ServiceName), is_binary(DeviceUUID), is_integer(At), is_map(Tags), is_binary(Fields) ->
|
||||||
gen_server:cast(?SERVER, {data, ServiceName, DeviceUUID, At, Tags, Fields}).
|
gen_server:cast(?SERVER, {data, ServiceName, DeviceUUID, At, Tags, Fields}).
|
||||||
|
|
||||||
|
ping() ->
|
||||||
|
|
||||||
|
ok.
|
||||||
|
|
||||||
%% @doc Spawns the server and registers the local name (unique)
|
%% @doc Spawns the server and registers the local name (unique)
|
||||||
-spec(start_link() ->
|
-spec(start_link() ->
|
||||||
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
|
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
|
||||||
|
|||||||
@ -423,11 +423,15 @@ encode_msg_ping(#ping{adcode = F1, boot_time = F2, province = F3, city = F4, efk
|
|||||||
true -> e_field_ping_memory(TrF12, B11, TrUserData)
|
true -> e_field_ping_memory(TrF12, B11, TrUserData)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
begin
|
if F13 == undefined -> B12;
|
||||||
TrF13 = id(F13, TrUserData),
|
true ->
|
||||||
if TrF13 == [] -> B12;
|
begin
|
||||||
true -> e_field_ping_interfaces(TrF13, B12, TrUserData)
|
TrF13 = id(F13, TrUserData),
|
||||||
end
|
case is_empty_string(TrF13) of
|
||||||
|
true -> B12;
|
||||||
|
false -> e_type_string(TrF13, <<B12/binary, 106>>, TrUserData)
|
||||||
|
end
|
||||||
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
encode_msg_service_inform(Msg, TrUserData) -> encode_msg_service_inform(Msg, <<>>, TrUserData).
|
encode_msg_service_inform(Msg, TrUserData) -> encode_msg_service_inform(Msg, <<>>, TrUserData).
|
||||||
@ -669,12 +673,6 @@ e_pfield_ping_memory([Value | Rest], Bin, TrUserData) ->
|
|||||||
e_pfield_ping_memory(Rest, Bin2, TrUserData);
|
e_pfield_ping_memory(Rest, Bin2, TrUserData);
|
||||||
e_pfield_ping_memory([], Bin, _TrUserData) -> Bin.
|
e_pfield_ping_memory([], Bin, _TrUserData) -> Bin.
|
||||||
|
|
||||||
e_field_ping_interfaces([Elem | Rest], Bin, TrUserData) ->
|
|
||||||
Bin2 = <<Bin/binary, 106>>,
|
|
||||||
Bin3 = e_type_bytes(id(Elem, TrUserData), Bin2, TrUserData),
|
|
||||||
e_field_ping_interfaces(Rest, Bin3, TrUserData);
|
|
||||||
e_field_ping_interfaces([], Bin, _TrUserData) -> Bin.
|
|
||||||
|
|
||||||
'encode_msg_map<string,string>'(#'map<string,string>'{key = F1, value = F2}, Bin, TrUserData) ->
|
'encode_msg_map<string,string>'(#'map<string,string>'{key = F1, value = F2}, Bin, TrUserData) ->
|
||||||
B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData) end,
|
B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <<Bin/binary, 10>>, TrUserData) end,
|
||||||
begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <<B1/binary, 18>>, TrUserData) end.
|
begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <<B1/binary, 18>>, TrUserData) end.
|
||||||
@ -1190,7 +1188,7 @@ decode_msg_ping(Bin, TrUserData) ->
|
|||||||
id(0.0, TrUserData),
|
id(0.0, TrUserData),
|
||||||
id([], TrUserData),
|
id([], TrUserData),
|
||||||
id([], TrUserData),
|
id([], TrUserData),
|
||||||
id([], TrUserData),
|
id(<<>>, TrUserData),
|
||||||
TrUserData).
|
TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_ping(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
dfp_read_field_def_ping(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
||||||
@ -1223,9 +1221,9 @@ dfp_read_field_def_ping(<<96, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4,
|
|||||||
d_field_ping_memory(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
d_field_ping_memory(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
||||||
dfp_read_field_def_ping(<<106, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
dfp_read_field_def_ping(<<106, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
||||||
d_field_ping_interfaces(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
d_field_ping_interfaces(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
||||||
dfp_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, R4, TrUserData) ->
|
dfp_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, F@_13, TrUserData) ->
|
||||||
#ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData),
|
#ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData),
|
||||||
memory = lists_reverse(R3, TrUserData), interfaces = lists_reverse(R4, TrUserData)};
|
memory = lists_reverse(R3, TrUserData), interfaces = F@_13};
|
||||||
dfp_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
dfp_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
||||||
dg_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData).
|
dg_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData).
|
||||||
|
|
||||||
@ -1258,9 +1256,9 @@ dg_read_field_def_ping(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F
|
|||||||
5 -> skip_32_ping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData)
|
5 -> skip_32_ping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData)
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
dg_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, R4, TrUserData) ->
|
dg_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, F@_13, TrUserData) ->
|
||||||
#ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData),
|
#ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData),
|
||||||
memory = lists_reverse(R3, TrUserData), interfaces = lists_reverse(R4, TrUserData)}.
|
memory = lists_reverse(R3, TrUserData), interfaces = F@_13}.
|
||||||
|
|
||||||
d_field_ping_adcode(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 ->
|
d_field_ping_adcode(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 ->
|
||||||
d_field_ping_adcode(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
d_field_ping_adcode(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
||||||
@ -1367,9 +1365,9 @@ d_packed_field_ping_memory(<<>>, 0, 0, _, AccSeq, _) -> AccSeq.
|
|||||||
|
|
||||||
d_field_ping_interfaces(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 ->
|
d_field_ping_interfaces(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 ->
|
||||||
d_field_ping_interfaces(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
d_field_ping_interfaces(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
||||||
d_field_ping_interfaces(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, Prev, TrUserData) ->
|
d_field_ping_interfaces(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, _, TrUserData) ->
|
||||||
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
{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_ping(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, cons(NewFValue, Prev, TrUserData), TrUserData).
|
dfp_read_field_def_ping(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, NewFValue, TrUserData).
|
||||||
|
|
||||||
skip_varint_ping(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
skip_varint_ping(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) ->
|
||||||
skip_varint_ping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
skip_varint_ping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData);
|
||||||
@ -1985,9 +1983,8 @@ merge_msg_ping(#ping{adcode = PFadcode, boot_time = PFboot_time, province = PFpr
|
|||||||
NFmemory == undefined -> PFmemory
|
NFmemory == undefined -> PFmemory
|
||||||
end,
|
end,
|
||||||
interfaces =
|
interfaces =
|
||||||
if PFinterfaces /= undefined, NFinterfaces /= undefined -> 'erlang_++'(PFinterfaces, NFinterfaces, TrUserData);
|
if NFinterfaces =:= undefined -> PFinterfaces;
|
||||||
PFinterfaces == undefined -> NFinterfaces;
|
true -> NFinterfaces
|
||||||
NFinterfaces == undefined -> PFinterfaces
|
|
||||||
end}.
|
end}.
|
||||||
|
|
||||||
-compile({nowarn_unused_function,merge_msg_service_inform/3}).
|
-compile({nowarn_unused_function,merge_msg_service_inform/3}).
|
||||||
@ -2236,10 +2233,8 @@ v_msg_ping(#ping{adcode = F1, boot_time = F2, province = F3, city = F4, efka_ver
|
|||||||
ok;
|
ok;
|
||||||
true -> mk_type_error({invalid_list_of, int32}, F12, [memory | Path])
|
true -> mk_type_error({invalid_list_of, int32}, F12, [memory | Path])
|
||||||
end,
|
end,
|
||||||
if is_list(F13) ->
|
if F13 == undefined -> ok;
|
||||||
_ = [v_type_bytes(Elem, [interfaces | Path], TrUserData) || Elem <- F13],
|
true -> v_type_string(F13, [interfaces | Path], TrUserData)
|
||||||
ok;
|
|
||||||
true -> mk_type_error({invalid_list_of, bytes}, F13, [interfaces | Path])
|
|
||||||
end,
|
end,
|
||||||
ok;
|
ok;
|
||||||
v_msg_ping(X, Path, _TrUserData) -> mk_type_error({expected_msg, ping}, X, Path).
|
v_msg_ping(X, Path, _TrUserData) -> mk_type_error({expected_msg, ping}, X, Path).
|
||||||
@ -2494,7 +2489,7 @@ get_msg_defs() ->
|
|||||||
#field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []},
|
#field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []},
|
||||||
#field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]},
|
#field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]},
|
||||||
#field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]},
|
#field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]},
|
||||||
#field{name = interfaces, fnum = 13, rnum = 14, type = bytes, occurrence = repeated, opts = []}]},
|
#field{name = interfaces, fnum = 13, rnum = 14, type = string, occurrence = optional, opts = []}]},
|
||||||
{{msg, service_inform},
|
{{msg, service_inform},
|
||||||
[#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
[#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
||||||
#field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
#field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
||||||
@ -2569,7 +2564,7 @@ find_msg_def(ping) ->
|
|||||||
#field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []},
|
#field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []},
|
||||||
#field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]},
|
#field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]},
|
||||||
#field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]},
|
#field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]},
|
||||||
#field{name = interfaces, fnum = 13, rnum = 14, type = bytes, occurrence = repeated, opts = []}];
|
#field{name = interfaces, fnum = 13, rnum = 14, type = string, occurrence = optional, opts = []}];
|
||||||
find_msg_def(service_inform) ->
|
find_msg_def(service_inform) ->
|
||||||
[#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
[#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []},
|
||||||
#field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
#field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []},
|
||||||
|
|||||||
@ -70,7 +70,7 @@ message Ping {
|
|||||||
repeated int32 disk = 11;
|
repeated int32 disk = 11;
|
||||||
repeated int32 memory = 12;
|
repeated int32 memory = 12;
|
||||||
// 接口信息的定义: 每个接口的信息, 采用json格式传输,没有办法提前定义
|
// 接口信息的定义: 每个接口的信息, 采用json格式传输,没有办法提前定义
|
||||||
repeated bytes interfaces = 13;
|
string interfaces = 13;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inform消息
|
// Inform消息
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user