Как общаться с модемом gsm в c ++, используя IOKit? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать программу на c ++ на xcode для связи с модемом gsm и отправки смс через AT-команды. Я не нашел много на net. Вот код, который я написал до сих пор.

#include <iostream>
#include <xlnt/xlnt.hpp>
#include <xlnt/xlnt_config.hpp>
#include <IOKitLib.h>
#include <IOTypes.h>
#include <IOReturn.h>
#include <IOKitKeys.h>
#include <iokitmig.h>
#include <OSMessageNotification.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <paths.h>
#include <termios.h>
#include <sysexits.h>
#include <sys/param.h>
#include <sys/select.h>
#include <sys/time.h>
#include <time.h>
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
#include <IOKit/serial/IOSerialKeys.h>
#include <IOKit/IOBSD.h>

#define LOCAL_ECHO
#ifdef LOCAL_ECHO
#define kOKResponseString “AT\r\r\nOK\r\n”
#else
#define kOKResponseString “\r\nOK\r\n”
#define kATCommandString        "AT\r"
#define kMyErrReturn            -1
enum {
kNumRetries = 3
};

static struct termios gOriginalTTYAttrs;



int main()
{
char path;
char text;

int fileDescriptor;
kern_return_t kernResult;
io_iterator_t serialPortIterator;
char deviceFilePath[MAXPATHLEN];
kernResult = MyFindModems(&serialPortIterator);
kernResult = MyGetModemPath(serialPortIterator, deviceFilePath,
                        sizeof(deviceFilePath));
IOObjectRelease(serialPortIterator); // Release the iterator.
// Open the modem port, initialize the modem, then close it.
if (!deviceFilePath[0])
{
printf("No modem port found.\n");
return EX_UNAVAILABLE;
}
fileDescriptor = OpenSerialPort(deviceFilePath);
if (fileDescriptor == kMyErrReturn)
{
return EX_IOERR;
}
if (MyInitializeModem(fileDescriptor))
{
printf("Modem initialized successfully.\n");
}
else {
printf("Could not initialize modem.\n");
}
MyCloseSerialPort(fileDescriptor);
printf("Modem port closed.\n");
return EX_OK;

Это дает мне ошибку "использование необъявленного идентификатора MyFindModems" и всех других функций, которые начинаются с "My". Вот документация, на которую я ссылаюсь: http://mirror.informatimago.com/next/developer.apple.com/documentation/DeviceDrivers/Conceptual/WorkingWSerial/WorkingWithSerial.pdf

...