2010-06-21 3 views
0

Я работаю над проектом на основе FASTRACK SUPREME, который должен получать команды через последовательный RS232.Отправка команды ATD в Fastrack Supreme через RS232 в LabWindows/CVI

проблема: Когда я использую 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; 
} 

Где проблема? Пожалуйста помоги! Спасибо.

ответ

0

Я пробовал свой код так, как было. Я не уверен, что вы подразумеваете под «ничего не происходит». Когда я использовал код как есть (кроме случаев, когда мне приходилось использовать порт 2), все работало хорошо. счетчик символов был 18 из функции ComWrt.

Убедитесь, что COM-порт, который вы пытаетесь использовать, доступен.

за исключением ваших директив #includes, вот ваш код с незначительными модов, я побежал на моем компьютере, 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; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^