镭射激光器EzLaze3的二次开发

通信:RS232接口

命令语法

<前缀><地址><命令串><参数><终止符>


Field


Description


Prefix


一个分号字符“;”(59),必须放在所有命令的前面,当设备接收到前缀符后会重置命令输入缓存区。


Address


两个ASCII 字符,激光使用“LA” 作为其地址


Command String


Commands are specific to each device -- see the following sections for the commands that each device supports.


Parameters


Some commands may have parameters which immediately follow the command string. Multiple parameters are separated by commas(逗号). You must supply the correct number of characters for all parameters under all circumstances. For example, if a command expects a three-digit value, then the parameter must in the form “000”, “001”… “100” etc.


Terminator


ASCII 回车字符(13),接受设备在终端没有收到终止符时不会处理任何命令。

基本命令:

  • 能量          ;LAAT###   000-255
  • 频率           ;LARR###   000-255
  • 激发模式     ;LAMO#     0连续 1单枪 2爆发
  • 镭射指示灯   亮度 ;LASP###    000-255   是否闪烁  ;LASB#  0不闪 1闪烁  闪频 ;LABR###  000-255
  • 波长选择     IR高低   ;LAHS#       1 低 2高     Green高低   ;LAHS#
      3 低 5高
  • 爆发次数    ;LABU####     0000-0050
  • 形状(SlitX、SlitY):     ;LAXS###   ;LAYS###        000-255
  • 能量高 ;LAENH  能量低 ;LAENL
  • 镭射开枪      ;LAGO
  • 停止开枪      ;LAST
  • 开启激光      ;LAON
  • 关闭激光       ;LAOF
  • 计数   ;LASC  统计激光到当前时间为止一共激发了多少次

控制流程

初始化激光

打开串口

Send “;LASM1” 打开激光控制串口。激光会返回一个消息“ok”

Send “;LASS” 检查联动装置和电机的安全状态,在处理前应等待电机移动位被清零

若安全联锁装置可靠, send “;LAON” 将激光置为待机模式。

保持通讯

当激光被打开后(发送了“;LAON”命令)必须定时(至少两秒一次)发送命令给激光,否则激光会自动关闭。
使用了“;LASS”来定时间检查激光状态。

发射激光

设定激光的能量、频率、激发模式、波长、光圈

Send “;LAGO” 发射激光

Send “;LAST” 停止 发射激光

Send “:LAOF”将激光置为停止模式

程序实现

1)  打开串口

串口底层通讯调用的是开源的RS232控制源rs232.h与rs232.c,它所提供的函数

int RS232_OpenComport(int comport_number, int baudrate, const char *mode)

可以用来打开某个指定串口,三个参数分别代表串口号、波特率、通信协议。

使用时设置 baudrate=9600,char mode[]={‘8‘,‘N‘,‘1‘,0},当函数返回0时表示已成功打开串口

2) 向串口发送信息

void RS232_cputs(int comport_number, const char *text)  /* sends a string to serial port */

{

while(*text != 0)   RS232_SendByte(comport_number, *(text++));

}

调用方法:RS232_cputs(cport_nr, ";LASS\n");   //发送 ";LASS\n" //检查安全连锁状态

3) 定时间检查激光状态

采用多线程编程,为查询事件新建了一个线程。

#include <pthread.h>

int res;

pthread_t a_thread,b_thread;

res = pthread_create(&a_thread, NULL,thread_function,NULL);

if (res!=0)

{

printf("Create pthread error!/n");

return 1;

}

交互界面

使用QT编写gui界面

时间: 2024-08-09 00:42:13

镭射激光器EzLaze3的二次开发的相关文章

微控工具xp模块-开发版[微信(wechat)二次开发模块]

http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方便开发者用微信做一些扩展功能(如微信群发.多群直播等...) 目前支持功能: 发文本消息 发图片消息 发语音消息 发视频消息 获取微信好友列表 群列表 支持群发消息 支持消息转发(目前支持文本.图片.语音.视频.图文消息转发) 群管理功能(建群.加人.踢人.设置公告.改群名.退群.解散群) [注:本模块

浅析PHP的开源产品二次开发的基本要求

浅析PHP的开源产品二次开发的基本要求 第一, 基本要求:HTML(必须要非常熟悉),PHP(能看懂代码,能写一些小系统,如:留言板,小型CMS),Mysql(至少会一种数据库),Javascript(能看懂,能改现成的一些代码),Div+Css(能进行界面的调整,明白CSS是怎么使用的) 第二, 熟悉开源产品的使用,比如 Dedecms,你要知道怎么登录,怎么新建栏目,怎么添加文章,模板标签的使用方法,模型的概念和使用方法等等一些功能 第三, 要熟悉这个开源产品的数据库结构,还要理解里面核心文

通达OA 二次开发培训第二讲

本次是通达OA二次开发第二讲,主要介绍了如何在通达OA中进行程序开发,并将开发程序挂接到OA系统中.

xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置

前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 准备: 在windows系统上首先需要安装xhsell,具体下载地址可以搜一下,安

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台

结合Django+celery二次开发定时周期任务

需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还能满足他们,优化脚本之后只要开发提供查询数据的SQL.收件人.执行时间等等参数就可以几分钟写完一个定时任务脚本 ,到后面不知道是不是吃药了一天三四个定时任务,不到半个月手里一下就20多个定时任务了,渐渐感到力不从心了,而且天天还要给他们修改定时任务的SQL.收件人.执 行时间等等,天天写定时任务脚本

Arcengine 二次开发添加右键菜单

最近在搞arcengine 二次开发,遇到了好多问题,也通过网上查资料试着慢慢解决了,把解决的步骤记录下来,有需要帮助的可以看一下,也欢迎各位来批评指正. 想给自己的map application在图层上添加右键菜单,谷歌了一下,找到了解决的方法,原文的地址edndoc.esri.com/arcobjects/9.2/NET/1ED14BF2-A0E3-4e56-A70D-B9A7F7EC7880.htm.然后我根据这个添加了自己的右键菜单,又有一些改动. 效果如图所示(有点简陋),仅仅是简单的

dedecms二次开发:dedesql.class.php 数据库类

dedecms二次开发目录点这个:dedecms二次开发教程目录 系统会自动载入 dedesql.class.php 文件,并用 $dsql = $db = new DedeSql(false); 进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库. 常用的方法: 1.执行一个非查询类型的SQL语句,如 insert .create .update 等 $rs = $db->ExecuteNoneQ

基于Java的Arc Engine二次开发的环境的配置

1.软件准备 ArcGIS for Desktop 10.2, Arc engine, jdk-7u60-windows-i586,Eclipse Mar2 2.软件的安装 2.1 ArcGIS for Desktop 10.2的安装 软件的下载:ArcGIS for Desktop 10.3全套的下载:http://pan.baidu.com/s/1o7F4yue,附带破解方法 本文使用的是10.2,其下载路径与安装破解方法如:http://jingyan.baidu.com/article/