Wordt wel erg heh 
Probleem is dat we met het project een 1/2 jaar voorlopen dan met de C++ lessen. Ik kom dus nogal wat probleempjes tegen die ik niet kan oplossen omdat daar nog geen lesmateriaal voor is...
Ik probeer het dus zelf, maar het lukt niet echt helemaal
Nu heb ik dit probleem; er is een terminal gemaakt in C++ Builder... Er is een microcontroller aangesloten op de compoort zodat we stukjes tekst in de microcontroller kunnen zetten.
Nu gaat dat helemaal goed met behulp van een Memo veldje, het "luisterd" naar toetsaanslagen en stuurt ze direct door naar de com poort.
Nu wil ik ook graag een String uit een txt'je op het internet kunnen versturen naar de microcontroller.
Daarvoor gebruik ik:
De tekst komt mooi in de Memo te staan. Maar ik wil het graag direct door laten sturen. Ik dacht het zo op te lossen (helemaal onderaan):
Maar nu krijg ik een foutmelding:
Ik moet hem dus waarschijnlijk converteren....
Probleem is dat we met het project een 1/2 jaar voorlopen dan met de C++ lessen. Ik kom dus nogal wat probleempjes tegen die ik niet kan oplossen omdat daar nog geen lesmateriaal voor is...
Ik probeer het dus zelf, maar het lukt niet echt helemaal
Nu heb ik dit probleem; er is een terminal gemaakt in C++ Builder... Er is een microcontroller aangesloten op de compoort zodat we stukjes tekst in de microcontroller kunnen zetten.
Nu gaat dat helemaal goed met behulp van een Memo veldje, het "luisterd" naar toetsaanslagen en stuurt ze direct door naar de com poort.
Nu wil ik ook graag een String uit een txt'je op het internet kunnen versturen naar de microcontroller.
Daarvoor gebruik ik:
C++:
1
2
| NMHTTP->Get("http://www.digibytes.net/~opslag/uitvoer.txt"); Memo->Text = NMHTTP->Body; |
De tekst komt mooi in de Memo te staan. Maar ik wil het graag direct door laten sturen. Ik dacht het zo op te lossen (helemaal onderaan):
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
106
107
108
109
110
111
112
113
114
115
| //--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop #include "Main.h" #include "Thread.h" // GLOBAL VARIABLES HANDLE hComm = NULL; TRead *ReadThread; COMMTIMEOUTS ctmoNew = {0}, ctmoOld; //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; //--------------------------------------------------------------------------- __fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { DCB dcbCommPort; // OPEN THE COM PORT. // REPLACE "COM1" WITH A STRING OR "COM1", "COM3", ETC. TO OPEN // ANOTHER PORT. hComm = CreateFile ("COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); // IF THE PORT CAN'T BE OPENED, BAIL OUT. if (hComm == INVALID_HANDLE_VALUE) Application->Terminate(); // SET THE COMM TIMEOUTS IN OUR EXAMPLE. GetCommTimeouts (hComm,&ctmoOld); // Default setting is 100 ctmoNew.ReadTotalTimeoutConstant = 0; ctmoNew.ReadTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutConstant = 0; SetCommTimeouts (hComm, &ctmoNew); // SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS. dcbCommPort.DCBlength = sizeof (DCB); GetCommState(hComm, &dcbCommPort); BuildCommDCB("9600,N,8,1", &dcbCommPort); SetCommState(hComm, &dcbCommPort); // Start the thread ReadThread = new TRead(false); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action) { // Stop the thread ReadThread->Terminate(); // WAIT FOR THE THREAD TO TERMINATE, // PURGE THE INTERNAL COMM BUFFER, // RESTORE THE PREVIOUS TIMEOUT SETTINGS // AND CLOSE THE COMM PORT. Sleep(250); PurgeComm(hComm, PURGE_RXABORT); SetCommTimeouts(hComm, &ctmoOld); CloseHandle(hComm); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::mInvoerKeyPress(TObject *Sender, char &Key) { // TRANSMITS ANYTHING TYPED INTO THE MEMO AREA. TransmitCommChar(hComm, Key); // THIS PREVENTS TYPED TEXT FROM DISPLAYING GARBAGE ON THE SCREEN. // IF WE ARE CONNECTED TO A DEVICE THAT ECHOES CHARACTERS, SET // Key = 0 WITHOUT THE OTHER STUFF. if (Key != 13 && (Key < ' ' || Key > 'z')) Key = 0; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::Exit1Click(TObject *Sender) { frmMain->Close(); } //---------------------------------------------------------------------------6 void __fastcall TfrmMain::iExitClick(TObject *Sender) { frmMain->Close(); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::iUploadClick(TObject *Sender) { NMHTTP->Get("http://www.digibytes.net/~opslag/uitvoer.txt"); String sOverbreng = NMHTTP->Body; TransmitCommChar(hComm, sOverbreng); } //--------------------------------------------------------------------------- |
Maar nu krijg ik een foutmelding:
code:
1
| [C++ Error] Main.cpp(112): E2034 Cannot convert 'AnsiString' to 'char' |
Ik moet hem dus waarschijnlijk converteren....