Rewritten the T-Balancer code to use the FTDI D2XX drivers directly instead of the System.IO.Ports.SerialPort class. The SerialPort class has some ugly problems like http://connect.microsoft.com/VisualStudio/feedback/details/140018/serialport-crashes-after-disconnect-of-usb-com-port or http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/8a1825d2-c84b-4620-91e7-3934a4d47330 for which no real solution seems to exist. And Microsoft doesn't feel like it needs to be fixed for years now.
This commit is contained in:
+28
-25
@@ -74,34 +74,37 @@ namespace OpenHardwareMonitor.GUI {
|
||||
}
|
||||
|
||||
private void sendButton_Click(object sender, EventArgs e) {
|
||||
Version version = typeof(CrashReportForm).Assembly.GetName().Version;
|
||||
WebRequest request = WebRequest.Create(
|
||||
"http://openhardwaremonitor.org/report.php");
|
||||
request.Method = "POST";
|
||||
request.Timeout = 3000;
|
||||
request.ContentType = "application/x-www-form-urlencoded";
|
||||
|
||||
string report =
|
||||
"version=" + HttpUtility.UrlEncode(version.ToString()) + "&" +
|
||||
"report=" + HttpUtility.UrlEncode(reportTextBox.Text +
|
||||
commentTextBox.Text);
|
||||
byte[] byteArray = Encoding.UTF8.GetBytes(report);
|
||||
request.ContentLength = byteArray.Length;
|
||||
|
||||
Stream dataStream = request.GetRequestStream();
|
||||
dataStream.Write(byteArray, 0, byteArray.Length);
|
||||
dataStream.Close();
|
||||
try {
|
||||
WebResponse response = request.GetResponse();
|
||||
dataStream = response.GetResponseStream();
|
||||
StreamReader reader = new StreamReader(dataStream);
|
||||
string responseFromServer = reader.ReadToEnd();
|
||||
reader.Close();
|
||||
Version version = typeof(CrashReportForm).Assembly.GetName().Version;
|
||||
WebRequest request = WebRequest.Create(
|
||||
"http://openhardwaremonitor.org/report.php");
|
||||
request.Method = "POST";
|
||||
request.Timeout = 3000;
|
||||
request.ContentType = "application/x-www-form-urlencoded";
|
||||
|
||||
string report =
|
||||
"version=" + HttpUtility.UrlEncode(version.ToString()) + "&" +
|
||||
"report=" + HttpUtility.UrlEncode(reportTextBox.Text +
|
||||
commentTextBox.Text);
|
||||
byte[] byteArray = Encoding.UTF8.GetBytes(report);
|
||||
request.ContentLength = byteArray.Length;
|
||||
|
||||
Stream dataStream = request.GetRequestStream();
|
||||
dataStream.Write(byteArray, 0, byteArray.Length);
|
||||
dataStream.Close();
|
||||
response.Close();
|
||||
} catch (WebException) {
|
||||
try {
|
||||
WebResponse response = request.GetResponse();
|
||||
dataStream = response.GetResponseStream();
|
||||
StreamReader reader = new StreamReader(dataStream);
|
||||
string responseFromServer = reader.ReadToEnd();
|
||||
reader.Close();
|
||||
dataStream.Close();
|
||||
response.Close();
|
||||
} catch (WebException) {
|
||||
}
|
||||
} finally {
|
||||
Close();
|
||||
}
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user