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

Table des Matières

Publicité

NSError
*error;
char
cmd[50] =
{0};
@autoreleasepool {
// Setup the API to use local USB devices
if([YAPI
RegisterHub:@"usb": &error] != YAPI_SUCCESS) {
NSLog(@"RegisterHub error:
return
1;
}
YSerialPort
*serialPort;
if
(argc >
1) {
NSString
serialPort
=
} else {
serialPort
=
if
(serialPort
NSLog(@"No module connected (check USB
return
1;
}
}
int
slave, reg, val;
do {
NSLog(@"Please enter the MODBUS slave address
NSLog(@"Slave:
fgets(cmd, sizeof(cmd), stdin);
slave
=
atoi(cmd);
}
while(slave <
do {
NSLog(@"Please select a Coil No (>=1), Input Bit No
NSLog(@"
NSLog(@"No:
fgets(cmd, sizeof(cmd), stdin);
reg
=
atoi(cmd);
}
while(reg <
while(true) {
if(reg
>= 40001) {
val
=
(int)[[[serialPort modbusReadRegisters:slave :reg
]
} else
if(reg
val
=
(int)[[[serialPort modbusReadInputRegisters:slave :reg
objectAtIndex:0]
} else
if(reg
val
=
(int)[[[serialPort modbusReadInputBits:slave :reg
]
} else {
val
=
(int)[[[serialPort modbusReadBits:slave :reg
integerValue];
}
NSLog(@"Current value: %d"
NSLog(@"Press R to read again, Q to
if((reg
% 30000)
NSLog(@" or enter a new
}
NSLog(@":
");
fgets(cmd, sizeof(cmd), stdin);
if(cmd[0] ==
if (cmd[0] !=
val
=
atoi(cmd);
if(reg
>= 30001) {
[serialPort modbusWriteRegister:slave :reg
} else {
[serialPort modbusWriteBit:slave :reg
}
}
}
[YAPI
FreeAPI];
}
return
0;
}
www.yoctopuce.com
%@", [error localizedDescription]);
*target
=
[NSString
[YSerialPort
FindSerialPort:target];
[YSerialPort
FirstSerialPort];
== NULL) {
");
1
|| slave > 255);
Register No (>=30001) or Input Register No
");
1
|| reg
>=
50000
|| (reg
integerValue];
>= 30001) {
integerValue];
>= 10001) {
integerValue];
, val );
<
10000) {
value");
'q'
||
cmd[0] == 'Q')
'r'
&& cmd[0] !=
'R'
21. Utilisation du Yocto-RS485-V2 en Objective-C
stringWithUTF8String:argv[1]];
cable)");
(1...255)");
(>=10001+),");
% 10000) ==
0);
-
quit");
break;
&&
(reg
% 30000)
<
-
30001
-
1
:val];
(>=40001)");
-
40001
:1]
objectAtIndex:0
-
30001
:1]
-
10001
:1]
objectAtIndex:0
1
:1] objectAtIndex:0]
10000) {
:val];
169

Publicité

Table des Matières
loading

Ce manuel est également adapté pour:

Yocto-rs232

Table des Matières