原创 Labwindows/cvi8.5学习日志(26)----rs232文件发送程序

2010-6-20 14:00 3902 9 10 分类: 软件与OS


//*********************************************************
// Labwindows/cvi8.5 RS232发送文件
// szlihongtao
// 2010-06-12
// 参照 王建新的<Labwindows/cvi测试技术及工程应用> page180
// 稍有改写
//*********************************************************
#include <ansi_c.h>
#include <utility.h>
#include <rs232.h>
#include <cvirte.h>  
#include <userint.h>
#include "232.h"
//*********************************************************
static int byteswritten;
static char filename[MAX_FILENAME_LEN];
static char pathname[MAX_PATHNAME_LEN];
static int panelHandle;
int COM_Port;      
//*********************************************************
int main (int argc, char *argv[])
{
 if (InitCVIRTE (0, argv, 0) == 0)
  return -1; /* out of memory */
 if ((panelHandle = LoadPanel (0, "232.uir", PANEL)) < 0)
  return -1;
 
 COM_Port=1;
 OpenComConfig (COM_Port, "", 57600, 1, 8, 1, 32767, 32767); //打开并配置串口Com1     
 SetComTime (COM_Port, 5.0);    //设置通信超时时间
 SetXMode (COM_Port, 0);     //禁止串口软件握手     
 SetCTSMode (COM_Port, LWRS_HWHANDSHAKE_OFF);  //禁止硬件握手    
 
 DisplayPanel (panelHandle);
 RunUserInterface ();
 DiscardPanel (panelHandle);
 return 0;

//*********************************************************
// 发送文件名字
//*********************************************************
int CVICALLBACK sendfilename (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int i;
 switch (event)
 {
  case EVENT_COMMIT:
  { 
   // 因为接收端的程序是以回车符作为文件名的结尾, 所以要加这句话
   i=strlen(filename);
   if ((filename[i-1]=='\r')
    && (filename=='\0'))        
    ;
   else
    strcat (filename, "\r");
    
   i=strlen(filename);   
   byteswritten = ComWrt (COM_Port, filename, i);  //向Com1写入文件名字符串  
   
   SetCtrlAttribute (panel, PANEL_OKBUTTON_2, ATTR_DIMMED, 0); 
   break;
  }
 }
 return 0;
}
//*********************************************************
int CVICALLBACK QuitCallback (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 switch (event)
 {
  case EVENT_COMMIT:
  {  
   CloseCom (COM_Port);    //关闭串口Com1  
   QuitUserInterface (0);
   break;
  }
 }
 return 0;
}
//*********************************************************
// 选择文件
//*********************************************************
int CVICALLBACK filesel (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int selstatus;
 
 switch (event)
 {
  case EVENT_COMMIT:
  { 
   filename[0] = '\0';   // 字符串的结束符
   selstatus = FileSelectPopup ("", "*.*", "*.*", "打开文件", VAL_LOAD_BUTTON, 0, 0, 1, 1, pathname);
   if (selstatus >= 0)
   {
    SetCtrlVal (panelHandle, PANEL_STRING, pathname); // 显示完整的带有路径的文件名 
    SplitPath (pathname, NULL, NULL, filename);  //获得文件名
   }
   break;
  } 
 }
 return 0;
}
//*********************************************************
int CVICALLBACK sendfile (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 int outputqueuelen;
 
 switch (event)
 {               
  case EVENT_COMMIT:
  { 
   XModemConfig (COM_Port, 3.0, 3, 4.0, 1024);//设置串口Com1调制解调器参数 
   XModemSend (COM_Port, pathname);    //设置从串口Com1发送文件数据   
 
   outputqueuelen = GetOutQLen (COM_Port);  //获得串口Com1输出队列的字符串数目
   if (outputqueuelen == 0)
    MessagePopup ("文件传输", "文件传输完毕!");
   else
    MessagePopup ("文件传输", "过程有问题!");
   break;
  }
 }
 return 0;
}
//*********************************************************
//*********************************************************
//*********************************************************

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1724215 2014-1-9 15:57

研究了,谢谢共享
相关推荐阅读
sz_lihongtao 2011-04-20 21:32
32bit无符号数快速开平方根
//*******************************************************************************// 32bit无符号数开平方根// ...
sz_lihongtao 2011-04-20 12:12
STM32学习日志(24)----使用dsp库的FFT函数测相位
attachment download/**  ****************************************************************************...
sz_lihongtao 2011-04-19 14:57
STM32学习日志(23)----使用dsp库的FFT函数.rar
attachment download/**  ****************************************************************************...
sz_lihongtao 2011-04-19 10:39
stm32 dsp lib V2.0
attachment downloadattachment download...
sz_lihongtao 2011-04-19 10:37
STM32学习日志(22)----使用DMA功能自动更新PWM的输出
attachment download/*******************************************************************************编...
sz_lihongtao 2010-09-08 21:59
Labwindows/cvi8.5学习日志(56)----任意波形发生器
//******************************************************************************// Labwindows/cvi8.5...
我要评论
1
9
关闭 站长推荐上一条 /1 下一条