Отправка команды ATD в Fastrack Supreme через RS232 в LabWindows / CVI - PullRequest
0 голосов
/ 22 июня 2010

Я работаю над проектом на основе 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 Ответ

0 голосов
/ 23 апреля 2011

Я попробовал ваш код, как это было.Я не уверен, что вы подразумеваете под «ничего не происходит». Когда я использовал код как есть (за исключением того, что мне пришлось использовать порт 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;
    }
...