Squashed 'lib/lufa/' content from commit 385d40300
git-subtree-dir: lib/lufa git-subtree-split: 385d4030035dbaf41591309dbde47653bd03841b
This commit is contained in:
commit
60b30c0363
1455 changed files with 394541 additions and 0 deletions
179
Projects/TempDataLogger/TempLogHostApp/DataLoggerSettings.cs
Normal file
179
Projects/TempDataLogger/TempLogHostApp/DataLoggerSettings.cs
Normal file
|
@ -0,0 +1,179 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Hid;
|
||||
|
||||
namespace Project1HostApp
|
||||
{
|
||||
public partial class frmDataloggerSettings : Form
|
||||
{
|
||||
private const int DEVICE_VID = 0x03EB;
|
||||
private const int DEVICE_PID = 0x2063;
|
||||
|
||||
private struct Device_Report_t
|
||||
{
|
||||
public Byte Day;
|
||||
public Byte Month;
|
||||
public Byte Year;
|
||||
|
||||
public Byte Hour;
|
||||
public Byte Minute;
|
||||
public Byte Second;
|
||||
|
||||
public Byte LogInterval500MS;
|
||||
|
||||
public Byte[] ToReport()
|
||||
{
|
||||
Byte[] Report = new Byte[7];
|
||||
|
||||
Report[0] = this.Hour;
|
||||
Report[1] = this.Minute;
|
||||
Report[2] = this.Second;
|
||||
Report[3] = this.Day;
|
||||
Report[4] = this.Month;
|
||||
Report[5] = this.Year;
|
||||
Report[6] = this.LogInterval500MS;
|
||||
|
||||
return Report;
|
||||
}
|
||||
|
||||
public void FromReport(Byte[] Report)
|
||||
{
|
||||
this.Hour = Report[0];
|
||||
this.Minute = Report[1];
|
||||
this.Second = Report[2];
|
||||
this.Day = Report[3];
|
||||
this.Month = Report[4];
|
||||
this.Year = Report[5];
|
||||
this.LogInterval500MS = Report[6];
|
||||
}
|
||||
};
|
||||
|
||||
private IDevice GetDeviceConnection()
|
||||
{
|
||||
IDevice[] ConnectedDevices = DeviceFactory.Enumerate(DEVICE_VID, DEVICE_PID);
|
||||
IDevice ConnectionHandle = null;
|
||||
|
||||
if (ConnectedDevices.Count() > 0)
|
||||
ConnectionHandle = ConnectedDevices[0];
|
||||
else
|
||||
return null;
|
||||
|
||||
// Fix report handle under Windows
|
||||
if (ConnectionHandle is Hid.Win32.Win32DeviceSet)
|
||||
{
|
||||
((Hid.Win32.Win32DeviceSet)ConnectionHandle).AddDevice(0x00,
|
||||
((Hid.Win32.Win32DeviceSet)ConnectionHandle).UnallocatedDevices[0]);
|
||||
}
|
||||
|
||||
return ConnectionHandle;
|
||||
}
|
||||
|
||||
public frmDataloggerSettings()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void btnSetValues_Click(object sender, EventArgs e)
|
||||
{
|
||||
IDevice ConnectionHandle = GetDeviceConnection();
|
||||
|
||||
if (ConnectionHandle == null)
|
||||
{
|
||||
MessageBox.Show("Error: Cannot connect to Datalogger device.");
|
||||
return;
|
||||
}
|
||||
|
||||
Device_Report_t DeviceReport = new Device_Report_t();
|
||||
DeviceReport.Day = (byte)dtpDate.Value.Day;
|
||||
DeviceReport.Month = (byte)dtpDate.Value.Month;
|
||||
DeviceReport.Year = (byte)((dtpDate.Value.Year < 2000) ? 0 : (dtpDate.Value.Year - 2000));
|
||||
DeviceReport.Hour = (byte)dtpTime.Value.Hour;
|
||||
DeviceReport.Minute = (byte)dtpTime.Value.Minute;
|
||||
DeviceReport.Second = (byte)dtpTime.Value.Second;
|
||||
DeviceReport.LogInterval500MS = (byte)(nudLogInterval.Value * 2);
|
||||
|
||||
try
|
||||
{
|
||||
ConnectionHandle.Write(0x00, DeviceReport.ToReport());
|
||||
MessageBox.Show("Device parameters updated successfully.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnGetValues_Click(object sender, EventArgs e)
|
||||
{
|
||||
IDevice ConnectionHandle = GetDeviceConnection();
|
||||
|
||||
if (ConnectionHandle == null)
|
||||
{
|
||||
MessageBox.Show("Error: Cannot connect to Datalogger device.");
|
||||
return;
|
||||
}
|
||||
|
||||
Device_Report_t DeviceReport = new Device_Report_t();
|
||||
|
||||
try
|
||||
{
|
||||
Byte[] Report = new Byte[7];
|
||||
|
||||
ConnectionHandle.Read(0x00, Report);
|
||||
DeviceReport.FromReport(Report);
|
||||
String msgText = "Device parameters retrieved successfully.";
|
||||
|
||||
try
|
||||
{
|
||||
dtpDate.Value = new DateTime(
|
||||
(2000 + DeviceReport.Year),
|
||||
DeviceReport.Month,
|
||||
DeviceReport.Day);
|
||||
|
||||
dtpTime.Value = new DateTime(
|
||||
DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,
|
||||
DeviceReport.Hour,
|
||||
DeviceReport.Minute,
|
||||
DeviceReport.Second);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
msgText = "Problem reading device:\n" +
|
||||
ex.Message +
|
||||
"\nY:" + DeviceReport.Year.ToString() +
|
||||
" M:" + DeviceReport.Month.ToString() +
|
||||
" D:" + DeviceReport.Day.ToString() +
|
||||
"\n\nUsing current date and time.";
|
||||
dtpDate.Value = DateTime.Now;
|
||||
dtpTime.Value = DateTime.Now;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
nudLogInterval.Value = (DeviceReport.LogInterval500MS / 2);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
nudLogInterval.Value = nudLogInterval.Minimum;
|
||||
}
|
||||
|
||||
MessageBox.Show(msgText);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void frmDataloggerSettings_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue