+ -
当前位置:首页 → 问答吧 → Convert.ToInt32(SysGlobalRP.SysParam[2])

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])
这些的作用,还请高手们畅所欲言。。。


作者: Qipeng_liang   发布时间: 2011-12-14

Convert.ToInt32(SysGlobalRP.SysParam[16])强制转换为int

下面的while就是循环 里面的参数是条件 满足就循环

作者: hefeng_aspnet   发布时间: 2011-12-15

楼上解释到位。。。

作者: sdl2005lyx   发布时间: 2011-12-15