コード例 #1
0
        public static void Write(string Data)
        {
            //用ref 的方式发送数据+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            // [DllImport("nican.dll")]
            //static extern int ncWrite(uint ObjHandle, int DataSize, ref NCTYPE_CAN_FRAME DataPtr);

            //NCTYPE_CAN_FRAME sendobj = new NCTYPE_CAN_FRAME()
            //{
            //    ArbitrationId = 0x512,
            //    IsRemote = 0,
            //    DataLength = 8,
            //};
            //string strdata = Data;
            //int len = (strdata.Length + 1) / 3;
            //List<byte> bytelist = new List<byte>();
            //for (int t = 0; t < len; t++)
            //{
            //    bytelist.Add(System.Convert.ToByte("0x" + strdata.Substring(t * 3, 2), 16));
            //    sendobj.Data[t] = bytelist[t];

            //}
            //int size = sizeof(NCTYPE_CAN_FRAME);
            //int ii = ncWrite(pObjHandlePtr, size, ref sendobj);

            //指针的方式发送数据++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            NCTYPE_CAN_FRAME  _STRUCT = new NCTYPE_CAN_FRAME();
            NCTYPE_CAN_FRAME *p       = &_STRUCT;

            p->ArbitrationId = 0x72b;
            p->IsRemote      = 0;
            p->DataLength    = 8;
            string      strdata  = Data;
            int         len      = (strdata.Length + 1) / 3;
            List <byte> bytelist = new List <byte>();

            for (int t = 0; t < len; t++)
            {
                bytelist.Add(Convert.ToByte("0x" + strdata.Substring(t * 3, 2), 16));
                p->Data[t] = bytelist[t];
            }
            int size1 = sizeof(NCTYPE_CAN_FRAME);

            ncWrite(pObjHandlePtr, size1, p);
        }
コード例 #2
0
 static extern int ncWrite(uint ObjHandle, int DataSize, NCTYPE_CAN_FRAME *DataPtr);