Непечатные управляющие символы через последовательный порт в C ++ с использованием WriteFile

Я пытаюсь написать управляющий символ (Ctrl-T, который #20 в таблице ASCII) к последовательному порту, используя WriteFile() функция, но, видимо, это не работает.

Когда я использую замазку и нажимаю CTRL + T,, Я получаю ответ через последовательный порт для связи с датчиком силы ATI, с которым я работаю. Ниже приведен снимок:

Замазка Терминал

Тем не менее, когда я использую WriteFile() функция в C ++, я не получаю ответ от датчика, который указывает мне, что Ctrl-T Команда не записана в последовательный порт. Ниже приведен фрагмент кода:

// set write character to CTRL-T (#20 = 0x14)
char t = 0x14;
// write the character to the serial port
m_serialPort.Write(&t,1);
// read 14 bytes with 1000 ms timeout from the serial port
m_serialPort.Read_N(str_read,14,1000);

Я проверил функции Write а также Read_Nи они отлично работают, когда я имею дело с печатными символами.

У кого-нибудь есть идеи как это исправить?

РЕДАКТИРОВАТЬ: Вот пример кода:

// SerialTest.cpp : main project file.

#include "stdafx.h"#include"SerialCommHelper.h"#include <windows.h>
#include <iostream>
using namespace System;

CSerialCommHelper m_serialPort;

int main()
{
std::string comPort = "COM1";
std::string str_read;
// Open the serial Port
m_serialPort.Init(comPort,9600,0,1,8);
m_serialPort.Start();
m_serialPort.Purge();

// set write character to CTRL-T (#20 = 0x14)
char t = 0x14;
// write the character to the serial port
m_serialPort.Write(&t,1);
// read 14 bytes with 1000 ms timeout from the serial port
m_serialPort.Read_N(str_read,14,1000);
std::cout << str_read;
system("pause");
m_serialPort.Stop();
m_serialPort.UnInit();
return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]