Отправка команды ATD в Fastrack Supreme через RS232 в LabWindows/CVI
Я работаю над проектом, основанным на FASTRACK SUPREME, который должен получать команды через последовательный порт RS232.
проблема в том, что: когда я использую HyperTerm, команда ATDxxxxxxxxx; работает отлично. Когда я использую библиотеку CVI RS232, ничего не происходит. Возможно ли, что моя команда остается заблокированной в
последовательный буфер? Вот мой код:
#include <ansi_c.h>
#include <cvirte.h>
#include <userint.h>
#include <rs232.h>
#include <utility.h>
#include <formatio.h>
#include <string.h>
int configurePort(void);
int sendCommand(void);
int port_open;
int error;
int main()
{
configurePort();
sendCommand ();
return 0;
}
int configurePort()
{
port_open = 0;
error = OpenComConfig (4, "COM4",115200 ,0,8,1,0, -1);
if (error)
{
printf("Error!\n");
}
if (error == 0)
{
port_open = 1;
SetXMode (4, 0);
SetCTSMode (4, 0);
SetComTime (4, 0);
}
return 0;
}
int sendCommand ()
{
char bufferWrite[100] ;
Fmt(bufferWrite,"%s","ATD0040761768027;");
ComWrt(4, bufferWrite, 18);
return 0;
}
В чем проблема? Пожалуйста помоги! Благодарю.
1 ответ
Я попробовал ваш код, как это было. Я не уверен, что вы подразумеваете под "ничего не происходит". Когда я использовал код как есть (за исключением того, что мне пришлось использовать порт 2), все работало хорошо. количество символов было 18 из функции ComWrt.
Убедитесь, что ком-порт, который вы пытаетесь использовать, доступен.
за исключением вашего #include, вот ваш код с незначительными модами, которые я запустил на своем компьютере, WinXP с CVI 2010:
#define PORT 2
#define PORTNAME "COM2"
int configurePort(void);
int sendCommand(void);
int port_open;
int error;
int main()
{
configurePort();
sendCommand ();
return 0;
}
int configurePort()
{
port_open = 0;
error = OpenComConfig (PORT, PORTNAME,115200 ,0,8,1,0, -1);
if (error)
{
printf("Error!\n");
}
if (error == 0)
{
port_open = 1;
SetXMode (PORT, 0);
SetCTSMode (PORT, 0);
SetComTime (PORT, 0);
}
return 0;
}
int sendCommand ()
{
char bufferWrite[100] ;
Fmt(bufferWrite,"%s","ATD0040761768027;");
error = ComWrt(PORT, bufferWrite, sizeof("ATD0040761768027;"));
return 0;
}