| /cvi/instr/MPOD/MPOD.c |
|---|
| 3,8 → 3,66 |
| #include <utility.h> |
| #include <stdio.h> |
| #include <stdarg.h> |
| #include "WIENER_SNMP.h" |
| #include "MPOD.h" |
| static mpodInit=1; |
| HSNMP crateHsnmp[MAX_CRATES]; |
| int _VI_FUNC MPOD_Start (void) |
| { |
| int i; |
| if (mpodInit) { |
| for (i=0;i<MAX_CRATES;i++) crateHsnmp[i]=NULL; |
| if(!snmpInit()) return -1; // basic init |
| mpodInit=0; |
| } |
| return 0; |
| } |
| int _VI_FUNC MPOD_Open (int mpodn, char *address) |
| { |
| if (crateHsnmp[mpodn]) { |
| printf("Crate number %i already in use!\n",mpodn); |
| return -2; |
| } |
| crateHsnmp[mpodn] = snmpOpen(address); // open TCP/IP socket |
| if(!crateHsnmp[mpodn]) return -1; |
| return 0; |
| } |
| int _VI_FUNC MPOD_GetInt (int mpodn, char *oidstr) |
| { |
| SnmpObject tmpObject; |
| getNode(oidstr, &tmpObject); |
| return snmpGetInt(crateHsnmp[mpodn], &tmpObject); |
| } |
| double _VI_FUNC MPOD_GetDouble (int mpodn, char *oidstr) |
| { |
| SnmpObject tmpObject; |
| getNode(oidstr, &tmpObject); |
| return snmpGetDouble(crateHsnmp[mpodn], &tmpObject); |
| } |
| int _VI_FUNC MPOD_Close (int mpodn) |
| { |
| snmpClose(crateHsnmp[mpodn]); |
| crateHsnmp[mpodn]=NULL; |
| return 0; |
| } |
| int _VI_FUNC MPOD_End (void) |
| { |
| if (!mpodInit) { |
| snmpCleanup(); // finish |
| mpodInit=1; |
| } |
| return 0; |
| } |
| #ifdef MPOD_MAIN |
| int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
| LPSTR lpszCmdLine, int nCmdShow) { |
| 15,29 → 73,26 |
| int iret; |
| // int i, j; |
| // oid oidStr[MAX_OID_LEN]; |
| // size_t lengthOidStr; |
| HSNMP crate1; |
| if (InitCVIRTE (hInstance, 0, 0) == 0) |
| return -1; /* out of memory */ |
| MPOD_Start(); |
| MPOD_Open(0,"arich-mpod1.kek.jp"); |
| crate1 = crateHsnmp[0]; |
| if(!snmpInit()) return 1; // basic init |
| crate1 = snmpOpen("arich-mpod1.kek.jp"); // open TCP/IP socket |
| if(!crate1) return 1; |
| printf("-----------------------------------------------------------------\n"); |
| iret=getMainSwitch(crate1); |
| printf("Main Switch = %i\n", iret); |
| // strcpy(oidStr,"moduleNumber.0"); |
| // strcpy(oidStr,"fanNominalSpeed.0"); |
| // iret=snmpGetInt(crate1, oidStr, strlen(oidStr)); |
| // printf("Module Number = %i\n", iret); |
| iret=MPOD_GetInt(0,"moduleNumber.0"); |
| printf("Module Number = %i\n", iret); |
| ret=MPOD_GetDouble(0,"outputVoltage.1"); |
| printf("Output Voltage = %f.\n", ret); |
| vSet = getOutputVoltage(crate1, ch); |
| printf("Output Voltage %i = %f.\n", ch, vSet); |
| 76,8 → 131,12 |
| printf("-----------------------------------------------------------------\n"); |
| snmpClose(crate1); |
| snmpCleanup(); // finish |
| Delay(1); |
| MPOD_Close(0); |
| MPOD_End(); |
| return 0; |
| } |
| #endif /* MPOD_MAIN */ |
| /cvi/instr/MPOD/MPOD.prj |
|---|
| 9,7 → 9,7 |
| VXIplug&play Framework Dir = "/C/Program Files (x86)/IVI Foundation/VISA/winnt" |
| IVI Standard Root 64-bit Dir = "/C/Program Files/IVI Foundation/IVI" |
| VXIplug&play Framework 64-bit Dir = "/C/Program Files/IVI Foundation/VISA/win64" |
| Number of Files = 5 |
| Number of Files = 7 |
| Target Type = "Executable" |
| Flags = 2064 |
| Copied From Locked InstrDrv Directory = False |
| 19,7 → 19,6 |
| [Folders] |
| User Interface Files Folder Not Added Yet = True |
| Instrument Files Folder Not Added Yet = True |
| Folder 0 = "Source Files" |
| FolderEx 0 = "Source Files" |
| Folder 1 = "Include Files" |
| 26,6 → 25,8 |
| FolderEx 1 = "Include Files" |
| Folder 2 = "Library Files" |
| FolderEx 2 = "Library Files" |
| Folder 3 = "Instrument Files" |
| FolderEx 3 = "Instrument Files" |
| [File 0001] |
| File Type = "CSource" |
| 58,8 → 59,8 |
| Res Id = 3 |
| Path Is Rel = True |
| Path Rel To = "Project" |
| Path Rel Path = "net-snmp-config.h" |
| Path = "/c/SAMO/Programi/NI/cvi/instr/MPOD/net-snmp-config.h" |
| Path Rel Path = "MPOD.h" |
| Path = "/c/SAMO/Programi/NI/cvi/instr/MPOD/MPOD.h" |
| Exclude = False |
| Project Flags = 0 |
| Folder = "Include Files" |
| 70,6 → 71,18 |
| Res Id = 4 |
| Path Is Rel = True |
| Path Rel To = "Project" |
| Path Rel Path = "net-snmp-config.h" |
| Path = "/c/SAMO/Programi/NI/cvi/instr/MPOD/net-snmp-config.h" |
| Exclude = False |
| Project Flags = 0 |
| Folder = "Include Files" |
| Folder Id = 1 |
| [File 0005] |
| File Type = "Include" |
| Res Id = 5 |
| Path Is Rel = True |
| Path Rel To = "Project" |
| Path Rel Path = "WIENER_SNMP.h" |
| Path = "/c/SAMO/Programi/NI/cvi/instr/MPOD/WIENER_SNMP.h" |
| Exclude = False |
| 77,9 → 90,9 |
| Folder = "Include Files" |
| Folder Id = 1 |
| [File 0005] |
| [File 0006] |
| File Type = "Library" |
| Res Id = 5 |
| Res Id = 6 |
| Path Is Rel = True |
| Path Rel To = "Project" |
| Path Rel Path = "../../../../../../usr/lib/netsnmp.lib" |
| 89,6 → 102,18 |
| Folder = "Library Files" |
| Folder Id = 2 |
| [File 0007] |
| File Type = "Function Panel" |
| Res Id = 7 |
| Path Is Rel = True |
| Path Rel To = "Project" |
| Path Rel Path = "MPOD.fp" |
| Path = "/c/SAMO/Programi/NI/cvi/instr/MPOD/MPOD.fp" |
| Exclude = False |
| Project Flags = 0 |
| Folder = "Instrument Files" |
| Folder Id = 3 |
| [Custom Build Configs] |
| Num Custom Build Configs = 0 |
| 119,7 → 144,7 |
| Stack Commit = 4096 |
| Image Base Address = 4194304 |
| Image Base Address x64 = 4194304 |
| Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
| Compiler Defines = "/DWIN32_LEAN_AND_MEAN /DMPOD_MAIN" |
| Sign = False |
| Sign Store = "" |
| Sign Certificate = "" |
| /cvi/instr/MPOD/WIENER_SNMP.c |
|---|
| 127,9 → 127,9 |
| //static double snmpSetDouble(HSNMP session, const SnmpObject &object, double value); |
| static double snmpSetDouble(HSNMP session, const SnmpObject *object, double value); |
| static double snmpGetDouble(HSNMP session, const SnmpObject *object); |
| double snmpGetDouble(HSNMP session, const SnmpObject *object); |
| static int snmpSetInt(HSNMP session, const SnmpObject *object, int value); |
| static int snmpGetInt(HSNMP session, const SnmpObject *object); |
| int snmpGetInt(HSNMP session, const SnmpObject *object); |
| static char *snmpGetString(HSNMP session, const SnmpObject *object); |
| char snmpStringBuffer[1024]; |
| 183,7 → 183,8 |
| * @param object the resolved OID |
| * @return true on success, false otherwise |
| */ |
| static int getNode(const char * const node, SnmpObject *object) |
| //static int getNode(const char * const node, SnmpObject *object) |
| int getNode(const char * const node, SnmpObject *object) |
| { |
| object->len = MAX_OID_LEN; |
| if (!get_node(node, object->id, &object->len)) { |
| 1743,7 → 1744,7 |
| return pdu; |
| } |
| static int snmpGetInt(HSNMP session, const SnmpObject *object) |
| int snmpGetInt(HSNMP session, const SnmpObject *object) |
| { |
| int value = 0; |
| 1789,7 → 1790,7 |
| return result; |
| } |
| static double snmpGetDouble(HSNMP session, const SnmpObject *object) |
| double snmpGetDouble(HSNMP session, const SnmpObject *object) |
| { |
| double value = 0.0; |
| /cvi/instr/MPOD/WIENER_SNMP.h |
|---|
| 3,21 → 3,17 |
| #ifndef WIENER_SNMP_H |
| #define WIENER_SNMP_H |
| //#include "netsnmplib.h" |
| /* |
| #ifdef _MSC_VER |
| #define EXPORT extern "C" _declspec(dllexport) |
| #else |
| #define EXPORT extern "C" |
| #endif |
| */ |
| #define EXPORT |
| #define WIN32_LEAN_AND_MEAN |
| //#include <net-snmp/net-snmp-config.h> |
| #include "net-snmp-config.h" |
| //#define NET_SNMP_SNMPV3_H // we don't need SNMPV3 (one include file is missing) |
| //SAMO #include <net-snmp/net-snmp-config.h> |
| #include "net-snmp-config.h" // SAMO |
| //SAMO #define NET_SNMP_SNMPV3_H // we don't need SNMPV3 (one include file is missing) |
| #include <net-snmp/net-snmp-includes.h> |
| typedef void *HSNMP; // SNMP handle (like FILE) |
| /cvi/instr/MPOD/net-snmp-config.h |
|---|
| 1622,7 → 1622,7 |
| #pragma warning(push) |
| #pragma warning(disable: 4804) // '-' : unsafe use of type 'bool' in operation |
| #endif |
| /* SAMO |
| /* SAMO : ne dela z LabWindows CVI? |
| enum { |
| netsnmp_compile_time_uintptr_t_size_check |
| = sizeof(struct netsnmp_compile_time_uintptr_t_size_check_s { int:-!(sizeof(uintptr_t) == sizeof(void*)); }) |