Hallo,
Ik heb dus thuis zo'n sunny beam bakje, die gegevens bijhoud over men zonnepanelen en kan aangesloten worden via USB. Nu ben ik wat beginnen zoeken om deze data uit te lezen, maar bij het uitlezen wordt er nooit iets geretourneerd. Ik denk dat ik iets vergeet, want wat ik ook doe, ik krijg een steeds waarde 0 in men buffer. Zou sterk zijn dat na 20000 tekens, geen enkel eentje voorkomt niet ?
Ik heb een dotnet-wrapper klasse gedownload om te kunnen communiceren met de drivers en met het apparaat).Ik kan wel gegevens uitlezen, zoals type, serienummer, fabrikant, maar de eigenlijk inhoud niet. Hieronder de code die ik gebruik (naar een voorbeeld op: http://www.ftdichip.com/Projects/CodeExamples/CSharp.htm)
En hier vind je DLL die ik gebruik (kun je zien wat de methoden zijn met bijhorende uitleg) http://www.ftdichip.com/P...CSharp/FTD2XX_NET_106.zip
Alvast bedankt
Ik heb dus thuis zo'n sunny beam bakje, die gegevens bijhoud over men zonnepanelen en kan aangesloten worden via USB. Nu ben ik wat beginnen zoeken om deze data uit te lezen, maar bij het uitlezen wordt er nooit iets geretourneerd. Ik denk dat ik iets vergeet, want wat ik ook doe, ik krijg een steeds waarde 0 in men buffer. Zou sterk zijn dat na 20000 tekens, geen enkel eentje voorkomt niet ?
Ik heb een dotnet-wrapper klasse gedownload om te kunnen communiceren met de drivers en met het apparaat).Ik kan wel gegevens uitlezen, zoals type, serienummer, fabrikant, maar de eigenlijk inhoud niet. Hieronder de code die ik gebruik (naar een voorbeeld op: http://www.ftdichip.com/Projects/CodeExamples/CSharp.htm)
En hier vind je DLL die ik gebruik (kun je zien wat de methoden zijn met bijhorende uitleg) http://www.ftdichip.com/P...CSharp/FTD2XX_NET_106.zip
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| 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 FTD2XX_NET; using System.Threading; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); UInt32 ftdiDeviceCount = 0; FTDI.FT_STATUS ftStatus = FTDI.FT_STATUS.FT_OK; // Create new instance of the FTDI device class FTDI myFtdiDevice = new FTDI(); // Determine the number of FTDI devices connected to the machine ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount); // Check status if (ftStatus == FTDI.FT_STATUS.FT_OK) { txtTest.Text += "Aangesloten Apparaten: " + ftdiDeviceCount.ToString(); txtTest.Text += System.Environment.NewLine; txtTest.Text += System.Environment.NewLine; } if (ftdiDeviceCount == 0) { MessageBox.Show("Geen apparaten"); this.Close(); } // Allocate storage for device info list FTDI.FT_DEVICE_INFO_NODE[] ftdiDeviceList = new FTDI.FT_DEVICE_INFO_NODE[ftdiDeviceCount]; // Populate our device list ftStatus = myFtdiDevice.GetDeviceList(ftdiDeviceList); if (ftStatus == FTDI.FT_STATUS.FT_OK) { for (UInt32 i = 0; i < ftdiDeviceCount; i++) { txtTest.Text += "Device Index: " + i.ToString() + System.Environment.NewLine; txtTest.Text += "Flags: " + String.Format("{0:x}", ftdiDeviceList[i].Flags) + System.Environment.NewLine; txtTest.Text += "Type: " + ftdiDeviceList[i].Type.ToString() + System.Environment.NewLine; txtTest.Text += "ID: " + String.Format("{0:x}", ftdiDeviceList[i].ID) + System.Environment.NewLine; txtTest.Text += "Location ID: " + String.Format("{0:x}", ftdiDeviceList[i].LocId) + System.Environment.NewLine; txtTest.Text += "Serial Number: " + ftdiDeviceList[i].SerialNumber.ToString() + System.Environment.NewLine; txtTest.Text += "Description: " + ftdiDeviceList[i].Description.ToString() + System.Environment.NewLine; txtTest.Text += System.Environment.NewLine; txtTest.Text += System.Environment.NewLine; } } // Open first device in our list by serial number ftStatus = myFtdiDevice.OpenBySerialNumber(ftdiDeviceList[0].SerialNumber); if (ftStatus != FTDI.FT_STATUS.FT_OK) { MessageBox.Show("Kan het apparaat niet open"); this.Close(); } // Set up device data parameters // Set Baud rate to 9600 ftStatus = myFtdiDevice.SetBaudRate(9600); if (ftStatus != FTDI.FT_STATUS.FT_OK) { MessageBox.Show("Fout bij zetten device parameters"); this.Close(); } // Set flow control - set RTS/CTS flow control ftStatus = myFtdiDevice.SetFlowControl(FTDI.FT_FLOW_CONTROL.FT_FLOW_RTS_CTS, 0x11, 0x13); if (ftStatus != FTDI.FT_STATUS.FT_OK) { MessageBox.Show("Fout bij zetten device parameters"); this.Close(); } // Set read timeout to 5 seconds, write timeout to infinite ftStatus = myFtdiDevice.SetTimeouts(5000, 0); if (ftStatus != FTDI.FT_STATUS.FT_OK) { MessageBox.Show("Fout bij zetten device parameters"); this.Close(); } //FTDI.FT_DEVICE device = FTDI.FT_DEVICE.FT_DEVICE_AM byte[] test = new byte[20000]; uint teller = 0; myFtdiDevice.Read(test, 20000, ref teller); for (int i = 0; i < test.Length; i++) { txtTest.Text += test[i].ToString(); } } } } |
Alvast bedankt