仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1184|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计读写串行口数据,实际上很复杂,PHP倒没...

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:22:51 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
理解动态语言的概念,运做机制,熟悉PHP语法数据   我没看过PHP源码,但它有文件操作函数,我想应当可以吧?其实不可,那末做个CGI来完成也能够,并且自力性好,轻易保护。之前我在BCB情况下做过,思绪以下:(其实相当于通俗的文件读写操作,呵呵)

1、翻开文件

//先用文件体例翻开一个串口(COM1~~COM4中任一个)
HANDLE m_hComm = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

然后就能够用WriteFile()和ReadFile()来对串行口停止读写了,最初记得CloseHandle(m_hComm);把以后翻开的串行口封闭哦。
因为CreateFile()函数采取FILE_FLAG_OVERLAPPED常量,那末注重一下WriteFile()和ReadFile()函数的最初一个参数是OVERLAPPED布局的,读写前需求先初始化该布局:

OVERLAPPED m_ov;

m_ov.Offset = 0;
m_ov.OffsetHigh = 0;
m_ov.hEvent = NULL;

好了,下面已翻开COM2,那末就停止复杂读写:

2、写:

BOOL bResult = true;
char* m_WriteBuffer;
DWORD BytesSent = 0;

strcpy(m_WriteBuffer, "尝尝写出来");
bResult = WriteFile(m_hComm, m_WriteBuffer, strlen((char*)m_WriteBuffer), &BytesSent, m_ov);


3、读:

COMSTAT comstat;//该布局包括通讯装备的形态。
BOOL bResult = true;
DWORD dwError = 0;
DWORD BytesRead = 0;
unsigned char m_ReadBuff;
//入手下手轮回读
for (;;)
{
  bResult = ClearCommError(m_hComm, &dwError, &comstat);//更新COMSTAT布局并排除一切毛病
  if (comstat.cbInQue == 0)
  {
    break;//假如读完了就加入for轮回
  }

  bResult = ReadFile(m_hComm, &ReadBuff, 1, &BytesRead, m_ov);//一次读一名,假如喜好,你也能够一次读n位
  ......
  //在这里放入你的处置模块,归正ReadBuff里是内容(1位),可以兼并起来......
  ......
}

4、关失落
CloseHandle(m_hComm);


以上思绪可以经由过程函数前往值停止毛病处置,至于各毛病常量的意思可以查书,完全处置是费事点,晓得办法就能够了,只需你是复杂使用,那末复杂读写就足够了。这个文件读写体例还合用于打印口LPT1、LPT2~~~LPTn。在Unix下我没试过,但既然Unix类的操作体系比Windows加倍强调装备文件,信任在Unix、Linux下用文件体例读写COM口更复杂更通用吧。。。?仍是这句:晓得办法就行。该出手时就出手。^_^
不外假如在Unix、Linux下作为CGI来用的话,能够要设置编译后CGI文件的权限,本人试哦。
  小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
活着的死人 该用户已被删除
沙发
 楼主| 发表于 2015-3-6 14:20:53 | 显示全部楼层
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 06:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表