Yoctopuce Yocto-RS485-V2 Mode D'emploi page 69

Table des Matières

Publicité

#include "yocto_api.h"
#include "yocto_serialport.h"
#include <iostream>
#include <stdlib.h>
using namespace
std;
int main(int
argc,
{
string
errmsg;
if
(YAPI::RegisterHub("usb",
cerr
<<
"RegisterHub error : "
return 1;
}
YSerialPort
*serialPort;
if
(argc
>
1
&& string(argv[1]) != "any") {
serialPort
= YSerialPort::FindSerialPort(string(argv[1]));
} else {
serialPort
= YSerialPort::FirstSerialPort();
if
(serialPort
cerr
<<
"No module connected (check USB cable)"
return 1;
}
}
if (!serialPort->isOnline()) {
cout
<<
"Module not connected (check identification and USB cable)"
return 1;
}
int
slave, reg,
string
cmd;
do {
cout
<<
"Please enter the MODBUS slave address (1...255)"
cout
<<
"Slave:
cin
>> slave;
}
while(slave
<
do {
cout
<<
"Please select a Coil No (>=1), Input Bit No (>=10001+),"
cout
<<
"
cout
<<
"No: "
cin
>> reg;
}
while(reg
<
1
while(serialPort->isOnline()) {
if(reg
>= 40001) {
val
=
serialPort->modbusReadRegisters(slave, reg
} else
if(reg
val
=
serialPort->modbusReadInputRegisters(slave, reg
} else
if(reg
val
=
serialPort->modbusReadInputBits(slave, reg
} else {
val
=
serialPort->modbusReadBits(slave, reg
}
cout
<<
"Current value: "
cout
<<
"Press R to read again, Q to
if((reg
% 30000) < 10000) {
cout
<<
" or enter a new
}
cout
<<
": "
<< endl;
cin
>> cmd;
if(cmd
==
"q"
if
(cmd
!=
"r"
val
= atoi(cmd.c_str());
if(reg
>= 30001) {
serialPort->modbusWriteRegister(slave, reg
} else {
serialPort->modbusWriteBit(slave, reg
}
}
}
YAPI::FreeAPI();
return 0;
}
www.yoctopuce.com
const char
* argv[])
errmsg) != YAPI::SUCCESS) {
<<
errmsg
== NULL) {
val;
";
1
||
slave
> 255);
Input Register No (>=30001) or Register No (>=40001)"
;
||
reg
>=
50000
||
(reg
>= 30001) {
>= 10001) {
<<
val
<< endl;
value";
||
cmd
== "Q") break;
&&
cmd
!=
"R"
&&
(reg
<< endl;
<< endl;
% 10000) == 0);
-
40001,
-
-
10001,
-
1,
1)[0];
quit";
% 30000) < 10000) {
-
30001,
val);
-
1,
val);
10. Utilisation du Yocto-RS485-V2 en C++
<< endl;
<< endl;
<< endl;
<< endl;
1)[0];
30001,
1)[0];
1)[0];
61

Publicité

Table des Matières
loading

Ce manuel est également adapté pour:

Yocto-rs232

Table des Matières