调整转台角度.doc

上传人:夏** 文档编号:558298947 上传时间:2023-01-29 格式:DOC 页数:8 大小:39.51KB
返回 下载 相关 举报
调整转台角度.doc_第1页
第1页 / 共8页
调整转台角度.doc_第2页
第2页 / 共8页
调整转台角度.doc_第3页
第3页 / 共8页
调整转台角度.doc_第4页
第4页 / 共8页
调整转台角度.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《调整转台角度.doc》由会员分享,可在线阅读,更多相关《调整转台角度.doc(8页珍藏版)》请在金锄头文库上搜索。

1、/ CROTATE dialog 调整角度对话框 该段程序的主要思想就是设置调整角度对话框,在对话框中输入目标角度,并让转台启动扫描,使转台角度到达目标角度。即使天线的最大接收方向对准发射天线CROTATE:CROTATE(CWnd* pParent /*=NULL*/): CDialog(CROTATE:IDD, pParent)/AFX_DATA_INIT(CROTATE)m_rotate = 0.0; /目标角度初始设置为0/AFX_DATA_INITvoid CROTATE:DoDataExchange(CDataExchange* pDX) /设置对话框中的输入变量 目标角度m_ro

2、tateCDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CROTATE)DDX_Control(pDX, IDC_PROGRESS1, m_pro);DDX_Text(pDX, IDC_EDIT1, m_rotate);/AFX_DATA_MAPCROTATE:CROTATE()if (hCom !=NULL)Close_Comport(hCom);BEGIN_MESSAGE_MAP(CROTATE, CDialog) 设置对话框中的按钮ok,坐标标定,左微调,右微调,退出限位,归零/AFX_MSG_MAP(CROTATE)ON_BN_CLICKED(IDC

3、_RATOTE_OK, OnRatoteOk)ON_BN_CLICKED(IDC_BCALIBTATE, OnBcalibtate)ON_BN_CLICKED(IDC_BLEFT, OnBleft)ON_BN_CLICKED(IDC_BRIGHT, OnBright)ON_BN_CLICKED(IDC_BTCHXW, OnBtchxw)ON_BN_CLICKED(IDC_BZERO, OnBzero)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CROTATE message handlersBOOL CROTATE:OnInitDialog() /输入变量初始化 目标角度定义

4、为-90CDialog:OnInitDialog();/ TODO: Add extra initialization herem_rotate=-90;hCom=Open_Comport(1, 9600); / open the com 1 ;Invalidate(true);UpdateData(false);Poll();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CROTATE:Adjust

5、Angle(int mode) /调整角度函数,步进0.2度/MOde=0 ,right turn (increase) ; =1 ,left turn (decrease) ; char* str2com =new char12 ;char haz,laz,sum;float azelfloat;short tmpint,tmpint1;if (mode=0) tmpcmdAZ=tmpcurAZ+0.2f; /转台角度向右,步进为0.2 else tmpcmdAZ=tmpcurAZ-0.2f; /转台角度向左,步进为0.2 if (tmpcmdAZ = 0.0) /如果角度为正,实际角度*1

6、0=传输角度 azelfloat = float (floor( tmpcmdAZ * 10.0 + 0.1 );/转台每转过0.1度,伺服控制器就向计算机上报一次转台当前位置角度值。 tmpint = short (azelfloat); tmpint1 = tmpint;haz = char( tmpint1 8 ); /取高八位 laz = tmpint & 0x00ff; /取低八位 else / 如果角度为负,实际角度*10=传输角度azelfloat = float (floor( fabs(tmpcmdAZ) * 10.0 + 0.1 ); tmpint = short (aze

7、lfloat);tmpint = tmpint + 1; tmpint1 = tmpint;haz = char( tmpint1 8 ); /取高八位 laz = tmpint & 0x00ff;/取低八位sum =0;sprintf(str2com,%c%c%c%c%c%c%c%c%c%c, 0x55,0x55,0x20,haz,laz,haz,laz,1,1,sum);/启动扫描,每分钟5 Sleep(400) ;Write_Comport(hCom,10, str2com); /发送定位命令delete str2com ;/Sleep(100) ; / query() ;void CR

8、OTATE:Poll() /当前角度查询函数char* str2com =new char12 ;char* readstr =new char1024 ;sprintf(str2com,%c%c%c%c%c%c%c%c%c%c, 0x55,0x55,0x26,0,0,0,0,0,0,0xD0);/查询角度 Sleep(500);Write_Comport(hCom,10, str2com); /发送查询命令Sleep(200);int tmpint ;unsigned long BytesRead;char unsigned tmpcharAZ ;char unsigned tmpintH,

9、 tmpintL;int tmp ;tmpint = Read_Comport(hCom, &BytesRead, 1024, readstr);if (tmpint)/fprintf(fpklength,%dt%dt%dn,BytesRead,*(readstr + 2),totalk);if (BytesRead = 6) /接收到6个字节或6个字节以上。int k=BytesRead/6 ;tmpcharAZ = *(readstr+3+6*(k-1); /接收最新的数据if (tmpcharAZ128 ) tmpintH = *(readstr+3+6*(k-1) ;tmpintL =

10、 *(readstr+4+6*(k-1) ; tmpcurAZ = float(tmpintH*256+tmpintL-65536.0)/10.0); else tmpintH = *(readstr+3+ 6*(k-1) ;tmpintL = *(readstr+4+ 6*(k-1) ; tmp = tmpintH * 256;tmpcurAZ = float( ( tmp + tmpintL) / 10.0);else / if (tmpint)AfxMessageBox(与控制器之间通信不成功!) ;delete str2com ;delete readstr ;void CROTATE

11、:OnRatoteOk() / 按钮ok的函数/ TODO: Add your control notification handler code here/定位到目标角度的ok按钮UpdateData(true);Poll() ; / 查询角度if (fabs(m_rotate-tmpcurAZ)= 0.0) 如果目标角度为正 azelfloat = float (floor( m_rotate * 10.0 + 0.1 );/转台每转过0.1度,伺服控制器就向计算机上报一次转台当前位置角度值。 tmpint = short (azelfloat); tmpint1 = tmpint;haz

12、 = char( tmpint1 8 );取高八位 laz = tmpint & 0x00ff; 取低八位 else azelfloat = float (floor( fabs( m_rotate) * 10.0 + 0.1 ); tmpint = short (azelfloat);tmpint = tmpint + 1; tmpint1 = tmpint;haz = char( tmpint1 8 ); laz = tmpint & 0x00ff;sum =0;/sum=0x55+0x55+0x20+haz+laz+haz+laz+1+1;sprintf(str2com,%c%c%c%c%c%c%c%c%c%c, 0x55,0x55,0x20,haz,laz,haz,laz,1,1,sum); /启动扫描,转速为每分钟5Write_Comport(hCom,10, str2com); /发送定位命令 Sleep(200);/开始不断读角度数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号