29-01-2021, Saat: 21:18
(Son Düzenleme: 29-01-2021, Saat: 21:40, Düzenleyen: Mr.Developer.)
Merhaba,
json datadan okuduğum timestamp formatını nasıl datetime a çevirebilirim,
okuduğum data : 1611939307000
json datadan okuduğum timestamp formatını nasıl datetime a çevirebilirim,
okuduğum data : 1611939307000
procedure Tfrm_Main.prLoad_modem_inbox_teltonika(modem_inbox,
modem_inbox_detail, modem_id: string);
var
ListItem :TListItem;
JSONObject, Delphi : TJsonObject;
io_part,JSONObject_io_part : TJsonObject;
timestamp,JSONObject_timestamp : TJsonObject;
eventId: TJSONArray;
i:integer;
data,elements_id,elements_value,odo,test: string;
timestamp_data: string;
timestamp_data2: Tdatetime;
TS : TTimeStamp;
begin
Lst_modem_info.Items.Clear;
Lst_modem_info.Items.beginUpdate;
try
ADO_032.Close;
ADO_032.open;
pQry_modem_db.Close;
pQry_modem_db.SQL.Clear;
pQry_modem_db.SQL.Add(' SELECT TOP (10) ');
pQry_modem_db.SQL.Add('A.rec_id AS line_id,A.modem_id,A.raw_data as raw_data,C.message_name ');
pQry_modem_db.SQL.Add('FROM [MODEMDB].[dbo].[teltonika_inbox] A WITH (NOLOCK)');
pQry_modem_db.SQL.Add(' LEFT JOIN [MODEMDB].[dbo].modem_list B WITH (NOLOCK) ON (B.rec_id = A.modem_id)');
pQry_modem_db.SQL.Add(' INNER JOIN [MODEMDB].[dbo].generic_message_list C WITH (NOLOCK) ON C.message_id = A.message_id ');
pQry_modem_db.SQL.Add(' WHERE B.rec_id =
_paket_id order by line_id desc');
pQry_modem_db.Parameters.ParamByName('P_paket_id').DataType := ftString;
pQry_modem_db.Parameters.ParamByName('P_paket_id').Value := modem_id;
pQry_modem_db.Open;
if pQry_modem_db.RecordCount >0 then
begin
while NOT pQry_modem_db.eof do
begin
JSONObject := TJsonObject.Create;
JSONObject_io_part := TJsonObject.Create;
Delphi := TJsonObject.Create;
io_part := TJsonObject.Create;
data := pQry_modem_db.FieldByName('raw_data').AsString;
JSONObject_io_part.Parse(BytesOf(data), 0);
JSONObject.Parse(BytesOf(data), 0);
io_part.Parse(BytesOf(JSONObject.Values['io'].ToString), 0);
Delphi.Parse(BytesOf(JSONObject.Values['gps'].ToString), 0);
ListItem := Lst_modem_info.Items.Add;
ListItem.Caption := device_data_give (Lst_pos_info.Selected.Index).Plate;
ListItem.SubItems.Add(pQry_modem_db.FieldByName('line_id').AsString);
ListItem.SubItems.Add(pQry_modem_db.FieldByName('message_name').AsString);
JSONObject_timestamp := TJsonObject.Create;
timestamp := TJsonObject.Create;
JSONObject_timestamp.Parse(BytesOf(data), 0);
timestamp.Parse(BytesOf(JSONObject.Values['timestamp'].ToString),0);
timestamp_data := JSONObject_timestamp.GetValue('timestamp').ToString;
ListItem.SubItems.Add(JSONObject_timestamp.GetValue('timestamp').ToString);
eventId := io_part.GetValue('elements') as TJSONArray;
for I := 0 to eventId.Count-1 do
begin
io_part := TJsonObject.Create;
try
io_part.Parse(BytesOf(eventId.Items[i].ToString), 0);
elements_id := io_part.GetValue('id').ToString;
elements_value := io_part.GetValue('value').ToString;
if (elements_id = '239') and (elements_value = '"00"') then ListItem.SubItems.Add('Kapalı');
if (elements_id = '239') and (elements_value = '"01"') then ListItem.SubItems.Add('Açık');
if (elements_id = '16') then odo := elements_value;
finally
io_part.Free;
end;
end;
ListItem.SubItems.Add(Delphi.GetValue('speed').ToString);
ListItem.SubItems.Add(Delphi.GetValue('satellites').ToString);
ListItem.SubItems.Add(odo);
ListItem.SubItems.Add(Delphi.GetValue('longitude').ToString);
ListItem.SubItems.Add(Delphi.GetValue('latitude').ToString);
ListItem.SubItems.Add(pQry_modem_db.FieldByName('raw_data').AsString);
JSONObject_io_part.Free;
JSONObject.Free;
Delphi.Free;
timestamp.Free;
pQry_modem_db.Next;
end;
end;
finally
Lst_modem_info.Items.EndUpdate;
end;
end;

