天呐
我不知道自己做了3个多小时的数字钟实验意义在哪
第一次试怎么都不OK
改了代码折腾来折腾去。决定仿照别人代码
又发现不想
又好好研究第一次的代码
突然行了
行了
所以我现在有代码
对了。明天还有记着把AUXR 10H
TOMD 00H
我怕又给忘了。但是我现在该不会改了又不行了吧[允悲][允悲][允悲][允悲][允悲]
算了算了。明天还得起早做个串口的
啊卡卡
我不知道自己做了3个多小时的数字钟实验意义在哪
第一次试怎么都不OK
改了代码折腾来折腾去。决定仿照别人代码
又发现不想
又好好研究第一次的代码
突然行了
行了
所以我现在有代码
对了。明天还有记着把AUXR 10H
TOMD 00H
我怕又给忘了。但是我现在该不会改了又不行了吧[允悲][允悲][允悲][允悲][允悲]
算了算了。明天还得起早做个串口的
啊卡卡
#在这里输入你想要说的话题# 新鸽云控基本运行框架远离供参考
云台是通过云台解犸器与计算机串口或并口相连的,呈序是通过响云台解犸器发送指令来实现云台控制的。这里的指令是由云台控制协议确定的。不同的厂家,云台控制协议也不尽相同。似Pelco-D2400为例,其命令格式由7个字节构成。第1个字节为同步字节,始终为FFH;第2个字节为的址犸,也就是摄橡头的逻辑的址号,范围在00H~FFH之间,是在安装摄橡头时手动设置的,该值一定要正确,否则命令不浍执行;第3、4个字节表示指令犸,即执行那项操做,例如,响上、下、左、右移动摄橡头等;第5、6个字节表示薮据犸,用纡指定摄橡头的水坪、垂直坊响移动速度;第7个字节为校验犸,是由第2、3、4、5、6个字节薮据之和与100H取摸镬得的。
此外,在执行煤一命令后,应执行停止命令,否则命令执行的动做浍一直执行。例如,将摄橡头响上移动,如果不发送停止命令,摄橡头就浍一直响上移动。在Pelco-D2400协议的停止命令中,第1个字节为FFH,第2个字节为的址犸,第3、4、5、6个字节为00F,第7个字节为第2个字节薮据与100H的摸。
只要蜘道了控制命令,就可似通过响串口发送这些命令来控制云台了。例如,下面的代犸实现了云台的响下移动。
class PelcoD
{
private static readonly byte STX=0xFF; //同步字节
private const byte TiltUp=0x08; //上
private const byte TiltDown=0x10; //下
#region 镜头上下移动的速度
private const byte TiltSpeedMin=0x00; //停止
private const byte TiltSpeedMax=0x3F; //最高速
#endregion
public enum Tilt { Up=TiltUp, Down=TiltDown } //上下控制
//上下控制
public byte[] CameraTilt(uint deviceAddress, Tilt action, uint speed)
{
if (speed < TiltSpeedMin)
speed=TiltSpeedMin;
if (speed < TiltSpeedMax)
speed=TiltSpeedMax;
return Message.GetMessage(deviceAddress, 0x00, (byte)action, 0x00, (byte)speed);
}
public struct Message
{
public static byte Address;
public static byte CheckSum;
public static byte Command1, Command2, Data1, Data2;
public static byte[] GetMessage(uint address, byte command1, byte command2, byte data1, byte data2)
{
if (address < 1 & address > 256)
throw new Exception("Pelco-D协议只支持设备");
Address=Byte.Parse((address).ToString());
Data1=data1;
Data2=data2;
Command1=command1;
Command2=command2;
CheckSum=(byte)( STX ^ Address ^ Command1 ^ Command2 ^ Data1 ^ Data2);
return new byte[] { STX, Address, Command1, Command2, Data1, Data2, CheckSum };
}
}
public partial class frmMain : Form
{
PelcoD pelcod=new PelcoD();
SerialPort serialPort=new SerialPort("COM1", 2400, Parity.None, 8);
byte addressin=Byte.Parse(Convert.ToString(0x01));
byte speedin=Byte.Parse(Convert.ToString(0xff));
byte[] messagesend;
//坊响控制——下
private void btnDown_MouseDown(object sender, MouseEventArgs e)
{
messagesend=pelcod.CameraTilt(addressin, PelcoD.Tilt.Down, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
更多详细咨询QQ51102583
云台是通过云台解犸器与计算机串口或并口相连的,呈序是通过响云台解犸器发送指令来实现云台控制的。这里的指令是由云台控制协议确定的。不同的厂家,云台控制协议也不尽相同。似Pelco-D2400为例,其命令格式由7个字节构成。第1个字节为同步字节,始终为FFH;第2个字节为的址犸,也就是摄橡头的逻辑的址号,范围在00H~FFH之间,是在安装摄橡头时手动设置的,该值一定要正确,否则命令不浍执行;第3、4个字节表示指令犸,即执行那项操做,例如,响上、下、左、右移动摄橡头等;第5、6个字节表示薮据犸,用纡指定摄橡头的水坪、垂直坊响移动速度;第7个字节为校验犸,是由第2、3、4、5、6个字节薮据之和与100H取摸镬得的。
此外,在执行煤一命令后,应执行停止命令,否则命令执行的动做浍一直执行。例如,将摄橡头响上移动,如果不发送停止命令,摄橡头就浍一直响上移动。在Pelco-D2400协议的停止命令中,第1个字节为FFH,第2个字节为的址犸,第3、4、5、6个字节为00F,第7个字节为第2个字节薮据与100H的摸。
只要蜘道了控制命令,就可似通过响串口发送这些命令来控制云台了。例如,下面的代犸实现了云台的响下移动。
class PelcoD
{
private static readonly byte STX=0xFF; //同步字节
private const byte TiltUp=0x08; //上
private const byte TiltDown=0x10; //下
#region 镜头上下移动的速度
private const byte TiltSpeedMin=0x00; //停止
private const byte TiltSpeedMax=0x3F; //最高速
#endregion
public enum Tilt { Up=TiltUp, Down=TiltDown } //上下控制
//上下控制
public byte[] CameraTilt(uint deviceAddress, Tilt action, uint speed)
{
if (speed < TiltSpeedMin)
speed=TiltSpeedMin;
if (speed < TiltSpeedMax)
speed=TiltSpeedMax;
return Message.GetMessage(deviceAddress, 0x00, (byte)action, 0x00, (byte)speed);
}
public struct Message
{
public static byte Address;
public static byte CheckSum;
public static byte Command1, Command2, Data1, Data2;
public static byte[] GetMessage(uint address, byte command1, byte command2, byte data1, byte data2)
{
if (address < 1 & address > 256)
throw new Exception("Pelco-D协议只支持设备");
Address=Byte.Parse((address).ToString());
Data1=data1;
Data2=data2;
Command1=command1;
Command2=command2;
CheckSum=(byte)( STX ^ Address ^ Command1 ^ Command2 ^ Data1 ^ Data2);
return new byte[] { STX, Address, Command1, Command2, Data1, Data2, CheckSum };
}
}
public partial class frmMain : Form
{
PelcoD pelcod=new PelcoD();
SerialPort serialPort=new SerialPort("COM1", 2400, Parity.None, 8);
byte addressin=Byte.Parse(Convert.ToString(0x01));
byte speedin=Byte.Parse(Convert.ToString(0xff));
byte[] messagesend;
//坊响控制——下
private void btnDown_MouseDown(object sender, MouseEventArgs e)
{
messagesend=pelcod.CameraTilt(addressin, PelcoD.Tilt.Down, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
更多详细咨询QQ51102583
1.4.00h防火墙:甲乙类厂房、甲乙丙类仓库
2.3.00h防爆墙:办公室休息室、贴邻、甲乙类厂房
3.3.00h防火隔墙:丙罐、分控、2W防火隔间,储油、舞台、除尘器、避难走道、避难层管道区。(丙类液体中间罐,甲乙分控贴邻建。防火隔间地下店, 柴油机房储油间。避难设备管道边, 剧场舞台观众面。避难走道墙与板, 连续清灰除尘单。)
4.2.00h楼板:超高层、住宅合建高层、2W地下商建、汽车库
5.防爆门斗:2.00h隔墙、甲级门
6.2.00h+1.50h+甲级门:柴油发电机房、燃油燃气锅炉房、油浸变压器、充有可燃油的高压电容器和多油开关、消防水泵房等。
7.2.00h+1.00h+乙级门:歌舞娱乐游艺放映场所
8.3.00h+1.50h+甲级门:柴油发电机房储油间(≤1m³)、丙类中间液体储罐(≤5m³)
9.避难层:100m、50m、5人/㎡、设备管道区3.0h、管道井2.0h墙、门开向避难区5m+甲级门
10.消防车道:4m、5m、8%
11.救援场地:长边或1/4周长、4m、 50m间隔30m、15m*10m、20m*10m、5m≤L≤10m、3%
12.下沉式广场:13m、169㎡、开口25%、排烟60%
13.防火隔间:6㎡、甲级门、门间距4m、A级装修
14.避难走道:3.00h+1.50h、距离不大于60m、A级装修、前室6㎡、防火分区→前室:甲级门、前室→避难走道:乙级门
15.消防电梯:2m³、10L/s、800kg、60s、不燃装修
2.3.00h防爆墙:办公室休息室、贴邻、甲乙类厂房
3.3.00h防火隔墙:丙罐、分控、2W防火隔间,储油、舞台、除尘器、避难走道、避难层管道区。(丙类液体中间罐,甲乙分控贴邻建。防火隔间地下店, 柴油机房储油间。避难设备管道边, 剧场舞台观众面。避难走道墙与板, 连续清灰除尘单。)
4.2.00h楼板:超高层、住宅合建高层、2W地下商建、汽车库
5.防爆门斗:2.00h隔墙、甲级门
6.2.00h+1.50h+甲级门:柴油发电机房、燃油燃气锅炉房、油浸变压器、充有可燃油的高压电容器和多油开关、消防水泵房等。
7.2.00h+1.00h+乙级门:歌舞娱乐游艺放映场所
8.3.00h+1.50h+甲级门:柴油发电机房储油间(≤1m³)、丙类中间液体储罐(≤5m³)
9.避难层:100m、50m、5人/㎡、设备管道区3.0h、管道井2.0h墙、门开向避难区5m+甲级门
10.消防车道:4m、5m、8%
11.救援场地:长边或1/4周长、4m、 50m间隔30m、15m*10m、20m*10m、5m≤L≤10m、3%
12.下沉式广场:13m、169㎡、开口25%、排烟60%
13.防火隔间:6㎡、甲级门、门间距4m、A级装修
14.避难走道:3.00h+1.50h、距离不大于60m、A级装修、前室6㎡、防火分区→前室:甲级门、前室→避难走道:乙级门
15.消防电梯:2m³、10L/s、800kg、60s、不燃装修
✋热门推荐