using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace CommonLib.DAQ { public class VK70xNMC_Wrapper { /// /// DLL加载路径 /// private const string DLLName = "VK70xNMC_DAQ2.dll"; //======================================================== // External variables //========================================================= //------------------------------------------- ADC Sampling control //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Initialize(int mci, double refvol, int bitmode, int sr, int volrg15, int volrg26, int volrg37, int volrg48); /// /// 初始化已连接的采集卡参数(适用于 VK7 /// /// 已连接到服务器上的采集卡序 /// 选择采集卡模式 /// 采样精度 /// 采样率 /// 电压输入范围 /// 电压输入范围 /// 电压输入范围 /// 电压输入范围 /// [DllImport(DLLName, EntryPoint = "VK70xNMC_Initialize", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Initialize(int mci, double refvol, int bitmode, int sr, int volrg15, int volrg26, int volrg37, int volrg48); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Initialize_2(int mci, double refvol, int bitmode, int sr, int npoints, int timeinval, int *volrg); [DllImport(DLLName, EntryPoint = "VK70xNMC_Initialize_2", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Initialize_2(int mci, double refvol, int bitmode, int sr, int npoints, int timeinval, int[] volrg); [DllImport(DLLName, EntryPoint = "VK70xNMC_StartSampling", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_StartSampling(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_StartSampling_NPoints", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_StartSampling_NPoints(int mci, int Npointsnums); [DllImport(DLLName, EntryPoint = "VK70xNMC_StopSampling", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_StopSampling(int mci); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Set_SystemMode(int mci, int modelval,int samplemethod,int sdfilefmt); [DllImport(DLLName, EntryPoint = "VK70xNMC_Set_SystemMode", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Set_SystemMode(int mci, int modelval, int samplemethod, int sdfilefmt); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Set_AdditionalFeature(int mci, int funcNo, int para1, double para2); [DllImport(DLLName, EntryPoint = "VK70xNMC_Set_AdditionalFeature", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Set_AdditionalFeature(int mci, int funcNo, int para1, double para2); // VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Set_DeviceDefaultParameter(int mci, char *wrmodel, char *wrsn, int *para); [DllImport(DLLName, EntryPoint = "VK70xNMC_Set_DeviceDefaultParameter", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Set_DeviceDefaultParameter(int mci, byte[] wrmodel, byte[] wrsn, int[] para); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Set_eNetParameter(int mci, char *para, int len); [DllImport(DLLName, EntryPoint = "VK70xNMC_Set_eNetParameter", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Set_eNetParameter(int mci, byte[] para, int len); // VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_ADCConfigParameter(int mci, int *sr, int *npoints, int *timeintervals, int *bitmode, int *para, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_ADCConfigParameter", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_ADCConfigParameter(int mci, ref int sr, ref int npoints, ref int timeintervals, ref int bitmode, int[] para, int timeout); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_SystemMode(int mci, int *sysmode, int *samplecmd, int *sdfilefmt, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_SystemMode", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_SystemMode(int mci, ref int sysmode, ref int samplecmd, ref int sdfilefmt, int timeout); // VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_DeviceDefaultParameter(int mci, char *rdmodol, char *rdswver, char *rdhdver, char *rdsn, int *para, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_DeviceDefaultParameter", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_DeviceDefaultParameter(int mci, byte[] rdmodol, byte[] rdswver, byte[] rdhdver, byte[] rdsn, int[] para, int timeout); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_eNetParameter(int mci, char *tvalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_eNetParameter", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_eNetParameter(int mci, byte[] tvalue, int timeout); //-------------------------------------------------byt [DllImport(DLLName, EntryPoint = "VK70xNMC_GetVersionLot", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern char[] VK70xNMC_GetVersionLot(); //------------------------------------------ ADC Sampling Data ouppout [DllImport(DLLName, EntryPoint = "VK70xNMC_GetOneChannel", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetOneChannel(int mci, int CHNum, double[] adcbuffer, int rsamplenum);// for VK701N,VK701S,VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetFourChannel", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetFourChannel(int mci,double[] adcbuffer, int rsamplenum);// for VK701N,VK701S,VK702N //public static extern int VK70xNMC_GetFourChannel(int mci,ref double adcbuffer, int rsamplenum);// for VK701N,VK701S,VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetAllChannel", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetAllChannel(int mci, double[] adcbuffer, int rsamplenum); // for VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetOneChannel_WithIOStatus", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetOneChannel_WithIOStatus(int mci, int CHNum, double[] adcbuffer, int rsamplenum, int ioenable);// for VK701N,VK701S,VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetFourChannel_WithIOStatus", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetFourChannel_WithIOStatus(int mci, double[] adcbuffer, int rsamplenum, int ioenable);// for VK701N,VK701S,VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetAllChannel_WithIOStatus", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetAllChannel_WithIOStatus(int mci, double[] adcbuffer, int rsamplenum, int ioenable); // for VK702N //------------------------- [DllImport(DLLName, EntryPoint = "VK70xNMC_GetFixedFourChannel_CH1CH2_IO2IO3", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetFixedFourChannel_CH1CH2_IO2IO3(int mci, double[] adcbuffer, int rsamplenum);// for VK701N,VK701S,VK702N [DllImport(DLLName, EntryPoint = "VK70xNMC_GetFixedFourChannel_CH3CH4_IO2IO3", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetFixedFourChannel_CH3CH4_IO2IO3(int mci, double[] adcbuffer, int rsamplenum);// for VK701N,VK701S,VK702N //------------ [DllImport(DLLName, EntryPoint = "VK70xNMC_GetIOStatus", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_GetIOStatus(int mci, int[] iostatus); //=========================================================== // output //========================================================== //------------------------------------------ IO funtion setup [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_AllIOS_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_AllIOS_Blocking(int mci, ref int iobuffer, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_IO1_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_IO1_Blocking(int mci, ref int iovalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_IO2_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_IO2_Blocking(int mci, ref int iovalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_IO3_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_IO3_Blocking(int mci, ref int iovalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_IO4_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_IO4_Blocking(int mci, ref int iovalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_PWM_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_PWM_Blocking(int mci, ref double dutyval, ref int freqval, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_DAC_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_DAC_Blocking(int mci, ref int dacvalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_Counter_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_Counter_Blocking(int mci, ref int countervalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_Temperature_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_Temperature_Blocking(int mci, ref double tempvalue, int timeout); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_Freq_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_Freq_Blocking(int mci, ref int freqvalue, int timeout); //[DllImport(DLLName, EntryPoint = "VK70xNMC_Get_ExTemperatureHumidity_Blocking", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] //public static extern int VK70xNMC_Get_ExTemperatureHumidity_Blocking(int mci, ref double tempvalue, ref double humidity, int timeout); //========================================================= // sd card //========================================================= //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Set_SaveFileDeafultPath(int tflag, const char *defaultdir); [DllImport(DLLName, EntryPoint = "VK70xNMC_Set_SaveFileDeafultPath", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Set_SaveFileDeafultPath(int tflag, char[] defaultdir); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_SDFileRuningInformation(int mci, int *para); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_SDFileRuningInformation", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_SDFileRuningInformation(int mci, int[] para); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Enter_SDFileSystem(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Enter_SDFileSystem", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Enter_SDFileSystem(int mci); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Exit_SDFileSystem(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Exit_SDFileSystem", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Exit_SDFileSystem(int mci); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_SDFileDIR(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_SDFileDIR", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_SDFileDIR(int mci); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_OneSDFile(int mci, int fileindex); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_OneSDFile", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_OneSDFile(int mci, int fileindex); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Get_MultiSDFiles(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_MultiSDFiles", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_MultiSDFiles(int mci); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Delete_OneSDFile(int mci, int fileindex); [DllImport(DLLName, EntryPoint = "VK70xNMC_Delete_OneSDFile", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Delete_OneSDFile(int mci, int fileindex); //VK70xnMCDLL_fmt int Def_Function_OUTfmt VK70xNMC_Delete_MultiSDFiles(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Delete_MultiSDFiles", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Delete_MultiSDFiles(int mci); //========================================================= // Server //========================================================= //------------------------------------------ TCP/IP Server [DllImport(DLLName, EntryPoint = "Server_TCPClose", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_TCPClose(int portnumber); [DllImport(DLLName, EntryPoint = "Server_TCPOpen", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_TCPOpen(int portnumber); [DllImport(DLLName, EntryPoint = "Server_Get_ServerPort", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_Get_ServerPort(ref int iport); [DllImport(DLLName, EntryPoint = "Server_Bind_ConnectedClient", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_Bind_ConnectedClient(int tflag); //---------------------------------------- device information [DllImport(DLLName, EntryPoint = "Server_Get_ConnectedClientNumbers", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_Get_ConnectedClientNumbers(ref int cnum); [DllImport(DLLName, EntryPoint = "Server_Get_ConnectedClientHandle", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_Get_ConnectedClientHandle(int mci, ref int ihadble, Byte[] ipadr); //public static extern int Server_Get_ConnectedClientHandle(int mci, ref int ihadble, System.IntPtr ipadr); [DllImport(DLLName, EntryPoint = "Server_Get_RxTotoalBytes", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int Server_Get_RxTotoalBytes(ref int totalbytesnum, int clrflag); //------------------------------------------- facotry and update [DllImport(DLLName, EntryPoint = "VK702NHMC_Set_DeviceEnterUpgradeMode", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK702NHMC_Set_DeviceEnterUpgradeMode(int mci); [DllImport(DLLName, EntryPoint = "VK70xNMC_Get_ConvertBin2Text_Progress", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Get_ConvertBin2Text_Progress(ref int precent, ref int tstatus); [DllImport(DLLName, EntryPoint = "VK70xNMC_Start_ConvertBin2Text", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] public static extern int VK70xNMC_Start_ConvertBin2Text(char[] filename); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// static String ByteToStr(Byte[] bt, Encoding encoding) { return encoding.GetString(bt); } static string ToHexStrFromByte(byte[] byteDatas) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < byteDatas.Length; i++) { builder.Append(string.Format("0x{0:X2},", byteDatas[i])); } return builder.ToString().Trim(); } static bool check_hex(byte[] num1, byte[] num2) { if (num1.Length != num2.Length) return false; for (int i = 0; i < num1.Length; i++) { if (num1[i] != num2[i]) return false; } return true; } static byte[] recvBuf = new byte[1032]; } }