Skip to content
Snippets Groups Projects
Select Git revision
  • 3734e0cd9992348a320c4f11e37ce26711cc8571
  • master default
  • dev
3 results

SetupCommMenuView.js

Blame
  • DataLoggerSettings.cs NaN GiB
    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 = 0xFAFA;
    
            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.Day;
                    Report[1] = this.Month;
                    Report[2] = this.Year;
                    Report[3] = this.Hour;
                    Report[4] = this.Minute;
                    Report[5] = this.Second;
                    Report[6] = this.LogInterval500MS;
    
                    return Report;
                }
    
                public void FromReport(Byte[] Report)
                {
                    this.Day = Report[0];
                    this.Month = Report[1];
                    this.Year = Report[2];
                    this.Hour = Report[3];
                    this.Minute = Report[4];
                    this.Second = 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 sucessfully.");
                }
                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);
    
                    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)
                    {
                        dtpDate.Value = DateTime.Now;
                        dtpTime.Value = DateTime.Now;
                    }
    
                    try
                    {
                        nudLogInterval.Value = (DeviceReport.LogInterval500MS / 2);
                    }
                    catch (Exception ex)
                    {
                        nudLogInterval.Value = nudLogInterval.Minimum;
                    }
    
                    MessageBox.Show("Device parameters retrieved sucessfully.");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
    
            private void frmDataloggerSettings_Load(object sender, EventArgs e)
            {
    
            }
        }
    }