initial commit

This commit is contained in:
Boyan 2024-04-13 18:43:56 +02:00
commit 602420a3fb
Signed by: boyan_k
GPG Key ID: 620E9CC7A57EAAA5
5 changed files with 792 additions and 0 deletions

1
src/.gitignore vendored Normal file

@ -0,0 +1 @@
.env/

43
src/main.py Normal file

@ -0,0 +1,43 @@
from requests import get
from bs4 import BeautifulSoup
from chardet import detect
import csv
from json import dumps
# Dummy
ROOT = "http://192.168.2.20"
def bundle_file(url:str):
# get the file
raw = get(url).content
encoding = detect(raw)['encoding']
raw = raw.decode(encoding)
# turn it into json
reader = csv.DictReader(raw)
for row in reader:
for key in row:
row[key] = row[key].strip()
arr.append(row)
# dump to file
with open("out.json", "w") as f:
f.write(dumps(arr, indent=2))
return arr
def get_file(entries:int):
url = f"{ROOT}/Portal/Portal.mwsl?PriNav=DataLog&RecentCount={entries}"
soup = BeautifulSoup(get(url).content, "html.parser")
link = soup.find(id="link1")
return bundle_file(ROOT + link['href'])
def main():
file = get_file(10)
print(file)
if __name__ == "__main__":
main()

26
src/test.csv Normal file

@ -0,0 +1,26 @@
Record,Date,UTC Time,PT1,PT2,C1,C2,UVC1,Alarm1,STATUS
286447, 4/09/2024,16:25:47, 6.221047E-02, 3.000144E+00, 3.978499E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286446, 4/09/2024,15:55:27, 1.019963E-01, 3.012442E+00, 6.691173E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286445, 4/09/2024,15:25:07, 1.624421E+01, 3.003038E+00, 4.624203E+00, 5.058231E+00, 1.000000E+02,"-" ,"RO started"
286444, 4/09/2024,14:54:48, 1.074217E-01, 2.992911E+00, 1.211652E-01, 5.202907E+00, 1.000000E+02,"-" ,"Standby"
286443, 4/09/2024,14:24:28, 7.848651E-02, 3.001591E+00, 4.882724E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286442, 4/09/2024,13:54:08, 1.562498E-01, 3.005932E+00, 1.224319E+00, 5.193865E+00, 1.000000E+02,"-" ,"Standby"
286441, 4/09/2024,13:23:48, 1.236977E-01, 2.989294E+00, 8.499622E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286440, 4/09/2024,12:53:28, 9.295410E-02, 2.999421E+00, 2.170051E-02, 5.193865E+00, 1.000000E+02,"-" ,"Standby"
286439, 4/09/2024,12:23:08, 5.497667E-02, 3.000868E+00, 0.000000E+00, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286438, 4/09/2024,11:52:48, 8.752876E-02, 3.000144E+00, 3.616015E-03, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286437, 4/09/2024,11:22:28, 6.401892E-02, 2.994358E+00, 3.074275E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286436, 4/09/2024,10:52:08, 1.092301E-01, 2.999421E+00, 1.121230E-01, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286435, 4/09/2024,10:21:48, 3.143808E+00, 2.825810E+00, 0.000000E+00, 5.239076E+00, 1.000000E+02,"-" ,"RO started"
286434, 4/09/2024, 9:51:28, 1.291231E-01, 2.998698E+00, 0.000000E+00, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286433, 4/09/2024, 9:21:08, 1.638527E+01, 3.003762E+00, 3.692852E+00, 5.239076E+00, 1.000000E+02,"-" ,"RO started"
286432, 4/09/2024, 8:50:48, 1.616752E-01, 2.993634E+00, 1.224319E+00, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286431, 4/09/2024, 8:20:28, 8.752876E-02, 2.997974E+00, 3.074275E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286430, 4/09/2024, 7:50:09, 4.955133E-02, 3.003038E+00, 6.691173E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286429, 4/09/2024, 7:19:49, 7.486961E-02, 2.986400E+00, 1.302074E-01, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286428, 4/09/2024, 6:49:29, 4.955133E-02, 3.005932E+00, 5.786949E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286427, 4/09/2024, 6:19:09, 8.391186E-02, 2.997251E+00, 3.978499E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286426, 4/09/2024, 5:48:49, 5.135978E-02, 2.997974E+00, 0.000000E+00, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286425, 4/09/2024, 5:18:29, 8.572031E-02, 2.997974E+00, 2.170051E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286424, 4/09/2024, 4:48:09, 5.497667E-02, 3.005208E+00, 3.978499E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
286423, 4/09/2024, 4:17:49, 8.210341E-02, 2.997974E+00, 1.265826E-02, 5.239076E+00, 1.000000E+02,"-" ,"Standby"
Can't render this file because it contains an unexpected character in line 2 and column 114.

420
src/test.html Normal file

@ -0,0 +1,420 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>SIMATIC&nbsp;1200&nbsp;station_1</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-- ISO-8859-1 oder UTF-8 -->
<meta http-equiv="expires" content="0">
<link rel="stylesheet" type="text/css" href="../CSS/S7Web.css">
<script src="../Scripts/update.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
// Replace, because of the apostrophe in the french language
var phrase_on = "Disable automatic refresh";
var phrase_off = "Enable automatic refresh";
phrase_on = phrase_on.replace(/'/g, "&apos;");
phrase_off = phrase_off.replace(/'/g, "&apos;");
var update_phrase_on = "<img title='Automatic refresh enabled' border='0' src='../Images/update_active.gif'>&nbsp;<span title='" + phrase_on + "' class='Text_ReloadIcon'>Off</span>";
var update_phrase_off= "<img title='Automatic refresh disabled' border='0' src='../Images/update_inactive.gif'>&nbsp;<span title='" + phrase_off + "' class='Text_ReloadIcon'>On</span>";
var update_interval = '0';
var url_to_update = '0';
var lang_str_details = 'Details'; // für BGZ - selectRowDetails() in sortfiltertableml.js: String "Details" sprachersetzen
-->
</script>
<script type="text/javascript">url_to_update = window.location.href;update_interval='10000';</script>
</head>
<body>
<table class="main_table" cellspacing="0" cellpadding="0">
<!-- Header Line -->
<tr class="Header_Area">
<!-- Siemens Logo -->
<td><img src="../Images/Siemens_Firmenmarke_Header.gif" alt="Siemens" border="0"></td>
<!-- Object description (Headline) -->
<td valign="top" >
<table cellspacing ="0" cellpadding="0" border="0">
<tr>
<td height="39"></td><!-- 45px -6px (font-frame) -->
</tr>
<tr>
<td valign="top" class="Header_Title_Description" title="SIMATIC&nbsp;1200&nbsp;station_1/PLC_1" >SIMATIC&nbsp;1200&nbsp;station_1/PLC_1</td>
</tr>
</table>
</td>
<!-- Object description (Headline) End -->
<!-- Language Selection -->
<td align="right" valign="top" >
<table>
<tr>
<td class="Header_Language_Time_Date">
<table cellspacing="0" cellpadding="0">
<tr>
<td height ="12">&nbsp;</td>
</tr>
<tr>
<td align="right" valign="top">
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td class="Header_Date_Time"><div id="dynamic_date" class="updatable">04:23:37 pm&nbsp;&nbsp;&nbsp;09.04.2024</div></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<!-- Language Selection End-->
</tr>
<!-- Header Line End-->
<!-- Generated Line (MainNavigation(includes Login) and ClientArea(includes Title Area) -->
<tr>
<!-- Main Menu -->
<td>
<!-- Menu Generation -->
<table class="MainMenu_Area" cellspacing="0" cellpadding="0">
<tr>
<!-- Login Area -->
<!--<td class="Login_Area" colspan="2"><img src="/Images/SIMATIC_CONTROLLER.png" alt="Simatic Controller"></td>-->
<td class="Login_Area" colspan="2">
<form enctype="application/x-www-form-urlencoded" action="https://192.168.2.20/FormLogin" method="POST" id="Login_Area_Form" name="LoginForm" autocomplete="off">
<input type="hidden" name="Redirection" value="" >
<table id="login_box_table">
<tr>
<td class="Login_Table_Cell_Name">Name</td>
<td class="Login_Table_Cell_Input_Name"><input type="text" name="Login" maxlength="30" class="Login_Input"></td>
</tr>
<tr>
<td class="Login_Table_Cell">Password</td>
<td class="Login_Table_Cell_Input"><input type="password" name="Password" maxlength="30" class="Login_Input"></td>
</tr>
<tr>
<td colspan="2" class="Login_Table_Cell_Input_Button">
<table style="border-collapse: collapse; width: 100%;">
<tr>
<td style="width: 65%; padding: 0px 0px 0px 6px;">
&nbsp;
</td>
<td style="padding: 0px 4px 0px 0px;">
<button type="submit" class="login_button" id="login_box_button">Log in</button>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</td>
<!--Login Area End -->
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Start'>Start Page</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Ident'>Identification</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Diag'>Diagnostic Buffer</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Bgz'>Module Information</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Communication&amp;SecNav=CommunicationParam'>Communication</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Varstate'>Variable Status</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilweiss.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1_Selected" href='../Portal/Portal.mwsl?PriNav=DataLog'>Data Logs</a>
</td>
</tr>
<tr>
<td height="20px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Portal.mwsl?PriNav=Awp'>User Pages</a>
</td>
</tr>
<tr>
<td height="56px">
</td>
</tr>
<tr class="MainMenu_Navigation_Level1">
<td class="MainMenu_Navigation_arrow_Level1">
<img src="/Images/NaviPfeilblau.gif" alt="" border="0">
</td>
<td class="MainMenu_Navigation_Level1">
<a class="MainMenu_Navigation_Text_Level1" href='../Portal/Intro.mwsl'>Introduction</a>
</td>
</tr>
<!-- the following line is necessary for styling reasons -->
<tr>
<td height="100%">
</td>
</tr>
</table>
</td>
<!-- Client Area -->
<td class="Client_Area" colspan="2">
<SCRIPT LANGUAGE="javascript">
var refresh_state = 1;
function updatelinks()
{
var number = parseInt(document.getElementById('recententries').value);
if (isNaN(number))
return;
var i = 1;
for (i = 1; i <= document.datalogform.datalogcount.value; i++)
{
var linkstring = "link";
var idstring = "datalogid";
var filename = "filename";
var desttring = "/DataLog.html?RecentEntries=" + document.datalogform.recententries.value +"&id=";
linkstring = linkstring + i.toString();
idstring = idstring + i.toString();
filename = filename + i.toString();
desttring = desttring + document.getElementById(idstring).value
desttring = desttring + "&FileName=" +document.getElementById(filename).value
var link = document.getElementById(linkstring);
link.href = desttring;
}
}
function refreshIfRecentEntriesChanged()
{
var number = parseInt(document.getElementById('recententries').value);
if (isNaN(number))
document.datalogform.recententries.value = '25';
var newUrl;
var recentIndex = document.location.href.lastIndexOf("&RecentCount=");
if (recentIndex == -1)
newUrl = document.location.href + "&RecentCount=" + document.datalogform.recententries.value;
else
newUrl = document.location.href.substring(0, recentIndex) + "&RecentCount=" + document.datalogform.recententries.value;
if (newUrl != document.location.href)
document.location.href = newUrl;
return true;
}
function save_refresh_state()
{
refresh_state = timer_running;
update_off();
}
function reload_refresh_state()
{
if (refresh_state)
update_on();
else
update_off();
refreshIfRecentEntriesChanged();
}
function add() {
var number;
number = parseInt(document.getElementById('recententries').value);
if (!isNaN(number))
{
document.getElementById('recententries').value = number + 1;
refreshIfRecentEntriesChanged();
}
}
function subtract() {
var number;
number = parseInt(document.getElementById('recententries').value);
if (!isNaN(number))
{
document.getElementById('recententries').value = number - 1;
refreshIfRecentEntriesChanged();
}
}
</script>
<table class="Data_Area" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top" height="60px" colspan="2">
<table class="Title_Area" cellpadding="0" cellspacing="0">
<tr>
<td class="Title_Area_Name" title="Data Logs" >Data Logs</td>
<td class="Title_Area_ReloadIcon">&nbsp;
<span id="dynamic_link"><a class="Link_ReloadIcon" href="../ReloadSite.mwsl"><img title="Refresh" alt="Refresh" border="0" src="../Images/update_active.gif"></a></span></td>
<td class="Title_Area_PrinterIcon">
<a style='TEXT-DECORATION: none' href='../Portal/Print.mwsl?PriNav=DataLog' target=_blank>&nbsp;
<IMG title="Print" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; HEIGHT: 13px"
height=13 alt=Print src="../Images/Drucken.gif" border=0>
</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top" class="table_position" >
<form method="GET" style="margin: 0px;" name="datalogform" onSubmit="return false;">
<div id="dynamic_content_attributes" class="updatable">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="static_field_headline_dyn">Date</td>
<td class="static_field_headline_dyn">UTC Time</td>
<td class="static_field_headline_dyn">Files</td>
<td class="static_field_headline_small">Download</td>
<td></td><td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="output_field_dyn">09.04.2024</td>
<td class="output_field_dyn">03:55:26 pm</td>
<td class="output_field_dyn">
<a id="link1" onclick="return refreshIfRecentEntriesChanged();" href="/DataLog.html?RecentEntries=96&id=268435581&FileName=DataLog.csv" target="_blank">
DataLog</a>
</td>
<td class="static_field_small">
<a href="/DataLog.html?FileName=DataLog.csv">
<img src="../Images/save.png" alt="Save" border="0"></a>
</td>
<td class="static_field_small">
</td>
<td class="static_field_small">
</td>
<td class="invisible" id="id">
<INPUT type='hidden' name ='datalogid' id='datalogid1' value='268435581'>
</td>
<td class="invisible" id="filename">
<INPUT type='hidden' name ='filename' id='filename1' value='DataLog.csv'>
</td>
</tr>
<tr>
<td colspan="6">&nbsp;</td>
<td class="invisible" id="id">
&nbsp;</td>
<td class="invisible" id="filename">
&nbsp;</td>
</tr>
<tr>
<td class="output_field_dyn" colspan="6">
<div id="dynamic_content_parameter" class="updatable">
<table border="0" cellpadding="0" cellspacing="0" id="table1">
<tbody>
<tr>
<td class="static_field_dyn">
Number of recent entries to view:
<input class="datalog_submit_button" onclick="subtract();" value="-" name="decrement" type="button">
<input id="recententries" onfocus="save_refresh_state();" onblur="reload_refresh_state();" onkeyup="updatelinks();" name="recententries" value="96" size="5" maxlength="4" type="text">
<input class="datalog_submit_button" onclick="add();" value="+" name="increment" type="button">
<input type="hidden" name="input" value="1" id="datalogcount">
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</table>
<br /><br />
</div>
</form>
</td>
</tr>
</table>
</td>
<!-- Client Area End -->
</tr>
<!-- END Generated Line (MainNavigation(includes Login) and ClientArea(includes Title Area) -->
</table>
</body>
</html>

302
src/test.json Normal file

@ -0,0 +1,302 @@
[
{
"Record": "286447",
"Date": "4/09/2024",
"UTC Time": "16:25:47",
"PT1": "6.221047E-02",
"PT2": "3.000144E+00",
"C1": "3.978499E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286446",
"Date": "4/09/2024",
"UTC Time": "15:55:27",
"PT1": "1.019963E-01",
"PT2": "3.012442E+00",
"C1": "6.691173E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286445",
"Date": "4/09/2024",
"UTC Time": "15:25:07",
"PT1": "1.624421E+01",
"PT2": "3.003038E+00",
"C1": "4.624203E+00",
"C2": "5.058231E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "RO started"
},
{
"Record": "286444",
"Date": "4/09/2024",
"UTC Time": "14:54:48",
"PT1": "1.074217E-01",
"PT2": "2.992911E+00",
"C1": "1.211652E-01",
"C2": "5.202907E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286443",
"Date": "4/09/2024",
"UTC Time": "14:24:28",
"PT1": "7.848651E-02",
"PT2": "3.001591E+00",
"C1": "4.882724E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286442",
"Date": "4/09/2024",
"UTC Time": "13:54:08",
"PT1": "1.562498E-01",
"PT2": "3.005932E+00",
"C1": "1.224319E+00",
"C2": "5.193865E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286441",
"Date": "4/09/2024",
"UTC Time": "13:23:48",
"PT1": "1.236977E-01",
"PT2": "2.989294E+00",
"C1": "8.499622E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286440",
"Date": "4/09/2024",
"UTC Time": "12:53:28",
"PT1": "9.295410E-02",
"PT2": "2.999421E+00",
"C1": "2.170051E-02",
"C2": "5.193865E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286439",
"Date": "4/09/2024",
"UTC Time": "12:23:08",
"PT1": "5.497667E-02",
"PT2": "3.000868E+00",
"C1": "0.000000E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286438",
"Date": "4/09/2024",
"UTC Time": "11:52:48",
"PT1": "8.752876E-02",
"PT2": "3.000144E+00",
"C1": "3.616015E-03",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286437",
"Date": "4/09/2024",
"UTC Time": "11:22:28",
"PT1": "6.401892E-02",
"PT2": "2.994358E+00",
"C1": "3.074275E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286436",
"Date": "4/09/2024",
"UTC Time": "10:52:08",
"PT1": "1.092301E-01",
"PT2": "2.999421E+00",
"C1": "1.121230E-01",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286435",
"Date": "4/09/2024",
"UTC Time": "10:21:48",
"PT1": "3.143808E+00",
"PT2": "2.825810E+00",
"C1": "0.000000E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "RO started"
},
{
"Record": "286434",
"Date": "4/09/2024",
"UTC Time": "9:51:28",
"PT1": "1.291231E-01",
"PT2": "2.998698E+00",
"C1": "0.000000E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286433",
"Date": "4/09/2024",
"UTC Time": "9:21:08",
"PT1": "1.638527E+01",
"PT2": "3.003762E+00",
"C1": "3.692852E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "RO started"
},
{
"Record": "286432",
"Date": "4/09/2024",
"UTC Time": "8:50:48",
"PT1": "1.616752E-01",
"PT2": "2.993634E+00",
"C1": "1.224319E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286431",
"Date": "4/09/2024",
"UTC Time": "8:20:28",
"PT1": "8.752876E-02",
"PT2": "2.997974E+00",
"C1": "3.074275E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286430",
"Date": "4/09/2024",
"UTC Time": "7:50:09",
"PT1": "4.955133E-02",
"PT2": "3.003038E+00",
"C1": "6.691173E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286429",
"Date": "4/09/2024",
"UTC Time": "7:19:49",
"PT1": "7.486961E-02",
"PT2": "2.986400E+00",
"C1": "1.302074E-01",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286428",
"Date": "4/09/2024",
"UTC Time": "6:49:29",
"PT1": "4.955133E-02",
"PT2": "3.005932E+00",
"C1": "5.786949E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286427",
"Date": "4/09/2024",
"UTC Time": "6:19:09",
"PT1": "8.391186E-02",
"PT2": "2.997251E+00",
"C1": "3.978499E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286426",
"Date": "4/09/2024",
"UTC Time": "5:48:49",
"PT1": "5.135978E-02",
"PT2": "2.997974E+00",
"C1": "0.000000E+00",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286425",
"Date": "4/09/2024",
"UTC Time": "5:18:29",
"PT1": "8.572031E-02",
"PT2": "2.997974E+00",
"C1": "2.170051E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286424",
"Date": "4/09/2024",
"UTC Time": "4:48:09",
"PT1": "5.497667E-02",
"PT2": "3.005208E+00",
"C1": "3.978499E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
},
{
"Record": "286423",
"Date": "4/09/2024",
"UTC Time": "4:17:49",
"PT1": "8.210341E-02",
"PT2": "2.997974E+00",
"C1": "1.265826E-02",
"C2": "5.239076E+00",
"UVC1": "1.000000E+02",
"Alarm1": "-",
"STATUS": "Standby"
}
]