dyson.
Lieutenant
- Registriert
- März 2012
- Beiträge
- 619
Hallo,
ich habe mir in C# Windows Forms ein kleines Programm geschrieben um den Druckstatus eines 3D Druckers zu überwachen.
Die Start und Endzeit des Druckes konnte ich per Post-Befehl vom Drucker abfragen und habe diese als DateTime als var t1 und var t2 abgespeichert.
Nun würde ich gern mit Hilfe der beiden Zeiten und der aktuellen Systemzeit den Druckfortschritt in Prozent berechnen. Ich hoffe ihr könnt mir da folgen.
Nun bin ich leider ein C# n00b und weiß leider nicht wie ich ein solches Vorhaben genau umsetze.
Das Einlesen per Json hat ein Bekannter für mich gemacht, der ist leider aktuell nicht erreichbar. Deshalb frage ich euch.
Edit:
Hab es nun so versucht. Dort läuft das Programm allerdings in die Exception.
ich habe mir in C# Windows Forms ein kleines Programm geschrieben um den Druckstatus eines 3D Druckers zu überwachen.
Die Start und Endzeit des Druckes konnte ich per Post-Befehl vom Drucker abfragen und habe diese als DateTime als var t1 und var t2 abgespeichert.
Nun würde ich gern mit Hilfe der beiden Zeiten und der aktuellen Systemzeit den Druckfortschritt in Prozent berechnen. Ich hoffe ihr könnt mir da folgen.
Nun bin ich leider ein C# n00b und weiß leider nicht wie ich ein solches Vorhaben genau umsetze.
Code:
private void timer1_Tick(object sender, EventArgs e)
{
var request = (HttpWebRequest)WebRequest.Create("http://172.16.6.174/printer.cgi");
var postData = "cmd=exec&addr=0x80001020&offset=0&limit=1&list=1&.";
//postData += "&addr=0x80001020";
//postData += "offset=0";
//postData += "limit=1";
//postData += "list=1";
//postData += ".=";
var data = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var responseString = "";
using (var response = (HttpWebResponse)request.GetResponse())
{
responseString = new System.IO.StreamReader(response.GetResponseStream()).ReadToEnd();
}
try
{
var responseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponseData>(responseString);
if (responseData != null && responseData.result != null && responseData.result.data != null && responseData.result.data.Length > 0)
{
label1.Text = "Druckname" + $"{responseData.result.data[0].ProcessName}";
label1.Text += " Startzeit " + $"{responseData.result.data[0].StartTime}";
label1.Text += " Endzeit " + $"{responseData.result.data[0].EndTime}";
var t1 = DateTime.Parse(responseData.result.data[0].StartTime);
var t2 = DateTime.Parse(responseData.result.data[0].EndTime);
var diff = t2 - t1;
label1.Text += " Zeit in Minuten " + $"{diff.TotalMinutes} minuten\r\n";
}
}
catch (Exception ex)
{
label1.Text = " Fehler bei Parsen des Models";
}
Das Einlesen per Json hat ein Bekannter für mich gemacht, der ist leider aktuell nicht erreichbar. Deshalb frage ich euch.
Edit:
Code:
//Prozentfortschritt berechnen
var sys = DateTime.Now;
var diff2 = Convert.ToInt32(t2) - Convert.ToInt32(sys);
var test = 100 / Convert.ToInt32(diff.TotalMinutes);
var testI = Convert.ToInt32(test) * Convert.ToInt32(diff2);
Hab es nun so versucht. Dort läuft das Programm allerdings in die Exception.
Zuletzt bearbeitet: