public static void Terminate() { if (enabled) { Apci59.Close(slotNo); enabled = false; } }
public static double GetNowLocation(VectorId axis, ParameterManager param) { int counter = new int(); Apci59.DataFullRead(ApciM59.SlotNo, (short)axis, Apci59.EXTERNAL_COUNTER_READ, ref counter); counter = ((counter & 0x8000000) > 0 ? counter | 0xF000000 : counter); return(counter * param.EncoderResolution.Index(axis)); }
/* * /// <summary> * /// APCI-P54 から読み出します. * /// </summary> * /// <param name="address"></param> * /// <returns></returns> * public static byte IODRV0_Inpb(long address) { * byte data = new byte(); * Apci54.InPort(ApciIp54.SlotNo, (address & 0xFFFF), data); * * return data; * } * * * /// <summary> * /// APCI-P54 に書き出します. * /// </summary> * /// <param name="address"></param> * /// <param name="data"></param> * public static void IODRV0_Outpb(long address, byte data) { * Boolean status = ApciIp54.ExistanceP54; * * if (status) { * switch (address) { * case 6: * Apci54.SetDirections(ApciIp54.SlotNo, data); * break; * default: * long val = Apci54.OutPort(ApciIp54.SlotNo, (address & 0xFFFF), data); * status = (val == 0 ? false : true); * break; * } // switch end * } // if end * } */ /// <summary> /// APCI-P59 から読み出します. /// </summary> /// <param name="address"></param> /// <returns></returns> public static byte IODRV1_INpb(short address) { byte data = new byte(); short axis = (short)(address / 8); Apci59.InPort(ApciM59.SlotNo, axis, (short)(address & 0x07), ref data); return(data); }
public static Boolean Initialize() { Boolean status; try { slotNo = Apci59.SLOT_AUTO; status = Apci59.Create(ref slotNo); } catch (Exception ex) { status = false; throw ex; } return(status); }
/// <summary> /// APCI-59 に書き込みます. /// </summary> /// <param name="address"></param> /// <param name="data"></param> public static Boolean IODRV1_Outpb(long address, byte data) { short axis = (short)Math.Floor(address / 8.0); return(Apci59.OutPort(ApciM59.SlotNo, axis, (short)(address & 0x07), data)); }