Convert.ToInt32(SysGlobalRP.SysParam[2])
时间:2011-12-14
来源:互联网
下面是源代码:
[DllImport("IODriver.dll")]
static extern int DigitalIOWriteBit(int DeviceHandle, ushort port, ushort bit, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortByte(int DeviceHandle, ushort port, ushort mask, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortWord(int DeviceHandle, ushort port, ushort mask, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortDWord(int DeviceHandle, ushort port, uint mask, uint state);
// 读数字输入点函数
[DllImport("IODriver.dll")]
static extern int DigitalIOReadBit(int DeviceHandle, ushort port, ushort bit, ushort* state);
// 读数字输出点函数
[DllImport("IODriver.dll")]
static extern int DigitalIOGetDOBit(int DeviceHandle, ushort port, ushort bit, ushort* state);
// 读高速计数值
[DllImport("IODriver.dll")]
static extern int HighDataSampleRead(int DeviceHandle, ushort gwChannel, ushort* overflow, uint* count);
// 灌注手动操作
private void BtnGpOne_2_Click(object sender, EventArgs e)
{
ushort* P05State = stackalloc ushort[1]; //分配P05State一个1的大小
ushort* P100State = stackalloc ushort[1];
ushort* overflow = stackalloc ushort[1];
uint* count = stackalloc uint[1];
if (BtnGpOne_5.Text == "灌注 关闭")
{
BtnGpOne_5.ForeColor = Color.FromArgb(255, 0, 255);
BtnGpOne_5.BackColor = Color.FromArgb(0, 255, 0);
BtnGpOne_5.Text = "灌注 打开";
// 打开对应阀
DigitalIOWriteBit(CardHandle_2, 1, 0, 1); // 灌注加压破坏阀打开
DigitalIOWriteBit(CardHandle_2, 1, 1, 1); // 灌注加压防反阀打开
DigitalIOWriteBit(CardHandle_2, 1, 5, 1); // 灌注主控阀打开
DigitalIOWriteBit(CardHandle_2, 2, 4, 0); // 灌注头灌注打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 5, 1); // 灌注头灌注打开阀2打开
// 关闭真空管路残液阀
DigitalIOWriteBit(CardHandle_2, 1, 4, 0); // 灌注管加液阀关闭
DigitalIOWriteBit(CardHandle_2, 1, 6, 0); // 真空主控阀关闭
DigitalIOWriteBit(CardHandle_2, 2, 0, 0); // 灌注头真空打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 1, 0); // 灌注头真空打开阀2关闭
DigitalIOWriteBit(CardHandle_2, 1, 3, 0); // 灌注管脱泡阀关闭
DigitalIOWriteBit(CardHandle_2, 2, 2, 0); // 残液打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 3, 0); // 残液打开阀2关闭
switch (Convert.ToInt32(SysGlobalRP.SysParam[16]))
{
// 灌注设定的时间
case 0:
DateTime DateTime1, DateTime2;
double interval;
DateTime1 = DateTime.Now; // 现在时间
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
do
{
// 读取灌注管下限位P0.5
DigitalIOReadBit(CardHandle_2, 0, 5, P05State);
if (BtnGpOne_5.Text == "灌注 关闭" || P05State[0] == 0)
break;
DateTime2 = DateTime.Now; // 现在时间
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
interval = ts.TotalMilliseconds;
Application.DoEvents();
} while (interval < Convert.ToInt32(SysGlobalRP.SysParam[2]));
break;
// 灌注到设定的流量
case 1:
// 读取灌注量
HighDataSampleRead(CardHandle_0, 0, overflow, count);
while (count[0] > SysGlobalRP.SysParam[1] + SysGlobalRP.SysParam[10] || count[0] < SysGlobalRP.SysParam[1] - SysGlobalRP.SysParam[11])
{
// 读取灌注管下限位P0.5
DigitalIOReadBit(CardHandle_2, 0, 5, P05State);
if (BtnGpOne_5.Text == "灌注 关闭" || P05State[0] == 0)
break;
HighDataSampleRead(CardHandle_0, 0, overflow, count);
Application.DoEvents();
}
break;
}
下面是 ZMDVTeam.SysGlobalRP从元数据里面的代码:
using System;
namespace ZMDVTeam
{
public class SysGlobalRP
{
public static double[] SysParam;
public static double[] SysRegister;
public SysGlobalRP();
public static string GetString(int Index, int Numbers);
public static void PutString(int Index, int Numbers, string StrData);
public static void SysPRead(int StartRIndex, int EndRIndex);
public static void SysPWrite(int StartWIndex, int EndWIndex);
public static void SysRRead(int StartRIndex, int EndRIndex);
public static void SysRWrite(int StartWIndex, int EndWIndex);
}
}
我一直不明白 Convert.ToInt32(SysGlobalRP.SysParam[16])
Convert.ToInt32(SysGlobalRP.SysParam[2])
while (count[0] > SysGlobalRP.SysParam[1] + SysGlobalRP.SysParam[10] || count[0] < SysGlobalRP.SysParam[1] - SysGlobalRP.SysParam[11])
这些的作用,还请高手们畅所欲言。。。
[DllImport("IODriver.dll")]
static extern int DigitalIOWriteBit(int DeviceHandle, ushort port, ushort bit, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortByte(int DeviceHandle, ushort port, ushort mask, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortWord(int DeviceHandle, ushort port, ushort mask, ushort state);
[DllImport("IODriver.dll")]
static extern int DigitalIOWritePortDWord(int DeviceHandle, ushort port, uint mask, uint state);
// 读数字输入点函数
[DllImport("IODriver.dll")]
static extern int DigitalIOReadBit(int DeviceHandle, ushort port, ushort bit, ushort* state);
// 读数字输出点函数
[DllImport("IODriver.dll")]
static extern int DigitalIOGetDOBit(int DeviceHandle, ushort port, ushort bit, ushort* state);
// 读高速计数值
[DllImport("IODriver.dll")]
static extern int HighDataSampleRead(int DeviceHandle, ushort gwChannel, ushort* overflow, uint* count);
// 灌注手动操作
private void BtnGpOne_2_Click(object sender, EventArgs e)
{
ushort* P05State = stackalloc ushort[1]; //分配P05State一个1的大小
ushort* P100State = stackalloc ushort[1];
ushort* overflow = stackalloc ushort[1];
uint* count = stackalloc uint[1];
if (BtnGpOne_5.Text == "灌注 关闭")
{
BtnGpOne_5.ForeColor = Color.FromArgb(255, 0, 255);
BtnGpOne_5.BackColor = Color.FromArgb(0, 255, 0);
BtnGpOne_5.Text = "灌注 打开";
// 打开对应阀
DigitalIOWriteBit(CardHandle_2, 1, 0, 1); // 灌注加压破坏阀打开
DigitalIOWriteBit(CardHandle_2, 1, 1, 1); // 灌注加压防反阀打开
DigitalIOWriteBit(CardHandle_2, 1, 5, 1); // 灌注主控阀打开
DigitalIOWriteBit(CardHandle_2, 2, 4, 0); // 灌注头灌注打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 5, 1); // 灌注头灌注打开阀2打开
// 关闭真空管路残液阀
DigitalIOWriteBit(CardHandle_2, 1, 4, 0); // 灌注管加液阀关闭
DigitalIOWriteBit(CardHandle_2, 1, 6, 0); // 真空主控阀关闭
DigitalIOWriteBit(CardHandle_2, 2, 0, 0); // 灌注头真空打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 1, 0); // 灌注头真空打开阀2关闭
DigitalIOWriteBit(CardHandle_2, 1, 3, 0); // 灌注管脱泡阀关闭
DigitalIOWriteBit(CardHandle_2, 2, 2, 0); // 残液打开阀1关闭
DigitalIOWriteBit(CardHandle_2, 2, 3, 0); // 残液打开阀2关闭
switch (Convert.ToInt32(SysGlobalRP.SysParam[16]))
{
// 灌注设定的时间
case 0:
DateTime DateTime1, DateTime2;
double interval;
DateTime1 = DateTime.Now; // 现在时间
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
do
{
// 读取灌注管下限位P0.5
DigitalIOReadBit(CardHandle_2, 0, 5, P05State);
if (BtnGpOne_5.Text == "灌注 关闭" || P05State[0] == 0)
break;
DateTime2 = DateTime.Now; // 现在时间
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
interval = ts.TotalMilliseconds;
Application.DoEvents();
} while (interval < Convert.ToInt32(SysGlobalRP.SysParam[2]));
break;
// 灌注到设定的流量
case 1:
// 读取灌注量
HighDataSampleRead(CardHandle_0, 0, overflow, count);
while (count[0] > SysGlobalRP.SysParam[1] + SysGlobalRP.SysParam[10] || count[0] < SysGlobalRP.SysParam[1] - SysGlobalRP.SysParam[11])
{
// 读取灌注管下限位P0.5
DigitalIOReadBit(CardHandle_2, 0, 5, P05State);
if (BtnGpOne_5.Text == "灌注 关闭" || P05State[0] == 0)
break;
HighDataSampleRead(CardHandle_0, 0, overflow, count);
Application.DoEvents();
}
break;
}
下面是 ZMDVTeam.SysGlobalRP从元数据里面的代码:
using System;
namespace ZMDVTeam
{
public class SysGlobalRP
{
public static double[] SysParam;
public static double[] SysRegister;
public SysGlobalRP();
public static string GetString(int Index, int Numbers);
public static void PutString(int Index, int Numbers, string StrData);
public static void SysPRead(int StartRIndex, int EndRIndex);
public static void SysPWrite(int StartWIndex, int EndWIndex);
public static void SysRRead(int StartRIndex, int EndRIndex);
public static void SysRWrite(int StartWIndex, int EndWIndex);
}
}
我一直不明白 Convert.ToInt32(SysGlobalRP.SysParam[16])
Convert.ToInt32(SysGlobalRP.SysParam[2])
while (count[0] > SysGlobalRP.SysParam[1] + SysGlobalRP.SysParam[10] || count[0] < SysGlobalRP.SysParam[1] - SysGlobalRP.SysParam[11])
这些的作用,还请高手们畅所欲言。。。
作者: Qipeng_liang 发布时间: 2011-12-14
Convert.ToInt32(SysGlobalRP.SysParam[16])强制转换为int
下面的while就是循环 里面的参数是条件 满足就循环
下面的while就是循环 里面的参数是条件 满足就循环
作者: hefeng_aspnet 发布时间: 2011-12-15
楼上解释到位。。。
作者: sdl2005lyx 发布时间: 2011-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28