Я использовал так называемый «Serial Device Server» от moxa, и он работал как шарм.
Преимущества перед последовательным USB-конвертером:
- Устройство может быть интегрировано в любую точку сети
- на стороне приложения это просто хорошо задокументированное сетевое программирование
Сервер устройств в целом позволяет вам подключаться к последовательному устройству, используя такие сети, как LAN или WiFi .
Со стороны программного обеспечения было бы довольно легко программировать сеть / сокет, как:
(Использование GCDAsyncSocket )
Подготовка данных
static u_int8_t cmd1[] = { 0x1a, 0x73, 0x10 }; //defined by the serial device's protocol
static u_int8_t cmd2[] = { 0x1b, 0x51, 0x01 };
self.data = [NSMutableData dataWithBytes:&cmd1 length:sizeof(cmd1)];
[self.data appendData:[string dataUsingEncoding:NSUTF8StringEncoding]];
[self.data appendBytes:&cmd2 length:sizeof(cmd2)];
отправка данных
-(IBAction)buttonAction:(id)sender
{
NSError *error = nil;
[self.socket connectToHost:@"192.168.1.9" onPort:1234 withTimeout:-1 error:&error];
if (error) {
NSLog(@"error: %@", error);
}
}
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
{
[self.socket writeData:self.data withTimeout:-1 tag:23];
}