コード例 #1
0
 public static void Terminate()
 {
     if (enabled)
     {
         Apci59.Close(slotNo);
         enabled = false;
     }
 }
コード例 #2
0
        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));
        }
コード例 #3
0
        /*
         * /// <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);
        }
コード例 #4
0
                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);
                }
コード例 #5
0
        /// <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));
        }