SNMP in LabWindows!

For anyone looking for a way to do SNMP withing LabWindows, try the function panel located at http://www.kazimer.com/downloads/.  These functions work, and they are very easy to use.
By request of the author, I am not posting his files on the NI website.  But I told him, if he ever disappears, I will.

hendra,
CVI does not have any native SNMP libraries, however there are SNMP funtions available through the Windows SDK, which you can use in CVI. You will need to include MgmtAPI.lib, which is the SDK library that contains these functions, to your project. This library is included with CVI Full Development System, however, you must select the Windows SDK item when installing CVI.
I do not know of any examples that show how to do this, but it can be done using the library above.
Jared A.
Applications Engineer
National Instruments

Similar Messages

  • SNMP and LabWindows

    I understand that CVI 2010 does not have any SNMP tools, like LabView (ick!) does.  (Dare I hope that this will suddenly appeaer in CVI 2012?)
    Does anyone have a code example of implementing SNMP in LabWindows? 
    I'd like to develop an application to monitor & control an APC SmartUPS using their network card.  And no I can't do this using the built in web server, e-mail or ftp.  The application actually has to deal with about a dozen UPS units, and continuously operate in the background.

    hendra,
    CVI does not have any native SNMP libraries, however there are SNMP funtions available through the Windows SDK, which you can use in CVI. You will need to include MgmtAPI.lib, which is the SDK library that contains these functions, to your project. This library is included with CVI Full Development System, however, you must select the Windows SDK item when installing CVI.
    I do not know of any examples that show how to do this, but it can be done using the library above.
    Jared A.
    Applications Engineer
    National Instruments

  • Net snmp&&labwindows

     i need make a snmp tool with labwindows,but i use net-snmp api ,and complie it,but there are many fails,
    i have no idea to deal with them.
    include two h file----
           #include <net-snmp/net-snmp-config.h>
           #include <net-snmp/net-snmp-includes.h>
    1.typedef unsigned __int32 uint32_t; fail
    2.winnt.h                                        fail
     somebody can help me ??
    Attachments:
    1.JPG ‏85 KB

    I'm sorry, maybe the SNMP is not supported in NI production now.

  • Snmp commands dont work once the thread starts

    I am using multi-threading. Once my thread starts executing (using the CmtScheduleThreadPoolFunction), I am not able to run simple get and set snmp function, basically they never return. Any suggestions?
    Thank you all in advance.

    Hi qsa301,
    Does your function call work without multithreading?
    Is the function documented to be able to be called by multiple threads?
    Here are some KnowledgeBases about CVI and multithreading:
    Executing LabWindows/CVI Internet Library Functions from Multiple Threads
    http://digital.ni.com/public.nsf/websearch/88AC3C540ACFE65186257021005D2084?OpenDocument
    Multithreading in LabWindows/CVI
    http://zone.ni.com/devzone/cda/tut/p/id/3663
    General Information on Multithreading for C Programmers
    http://digital.ni.com/public.nsf/websearch/6ECCBAA87476EB22862568950071CCD6?OpenDocument
    Sending Parameters to a Thread Callback Function in LabWindows/CVI
    http://digital.ni.com/public.nsf/websearch/A50A89929B77EE06862571BF0015F42F?OpenDocument
    LabWindows/CVI and Thread Pools
    http://digital.ni.com/public.nsf/websearch/F968F9F8B100393786256D25005EAF8A?OpenDocument
    Gavin Fox
    Systems Software
    National Instruments

  • SNMP ifindex in Solaris 10

    Can anyone tell me how I can nail down the SNMP ifmib ifindex table on a Solaris 10 server? Every time the server guys add a subintderface, I have to reconfigure my PRTG and Spectrum models, and it's getting tedious. I cannot believe there is no way to nail down e1000g0=#2, e1000g1=#3, etc.
    Thanks in advance.
    Kevin Dorrell
    Luxembourg

    it should be possible to define the "index" in each /etc/hostname. file
    I have never done this, but when the system boots it reads the content of these files and passes them to "ifconfig" to configure the NICs
    search this page for "index":
    http://docs.oracle.com/cd/E19253-01/816-5166/ifconfig-1m/index.html

  • How do I use ZLIB in LabWindows?

    I downloaded the ZLIB 1.2.5 DLL from zlib.net and I am trying to use it with a C program for LabWindows 8.5.  I copied the DLL into my windows\system32 folder and the .h/.lib files into my project.  When I try to build my code, I get an error that sys/types.h was not found.  (zconf.h is trying to include this file.  It does not exist in my LabWindows installation.)  From previous posts, I know that other users have been able to build ZLIB using LabWindows.  How do I do it?
    Rich Ferrara
    Solved!
    Go to Solution.

    Rich:
    types.h is commonly defined in unix systems.  I'd suggest you start by commenting out line 364 in zconf.h and see what other errors you get.
    Lines 363 through 365:
    #ifdef STDC
    #  include <sys/types.h>    /* for off_t */
    #endif
    The comment on line 364 says that types.h is included for off_t.
    Here's a link from IBM that describes the contents of types.h
    http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/ty...
    It describes off_t as follows.
    off_t
    File offset, measured in bytes from the beginning of a file or device. off_t is normally defined as a signed, 32-bit integer. In the programming environment which enables large files, off_t is defined to be a signed, 64-bit integer.
    If you comment out line 364 and get errors regarding off_t, define it yourself, using the default int size on your system.
    typedef int off_t;

  • Visual Studio or LabWindows/CVI?

    I have a bit of a dilemma.
    I currently own Visual Studio 2010, IMAQ Vision Development Module 2013, and Measurement Studio (not sure of version). I currently do all of my programming in VB.net. Because IMAQ VDM is stuck in .Net framework 3.5 and there will be no further .net development by NI, I need to plan for the future. My applications need run on Win 8, 9, 43, or whatever my company decides to migrate to from Win 7.
    My understanding is that the NI modules I currently own will work with LabWindows/CVI. Correct? I also believe I can use them with C++ using the VS IDE. Is this also correct?
    Within my applications I do a lot of interfacing with Excel, writing text files, and interfacing to non-NI devices (cameras, DAQs, scanners, etc). I am able to do these things pretty easily using VB.net using vendor-provided SDK's.
    Therefore, my question is this...given the investment I have in software already, do I gain anything by migrating to LabWindows/CVI? What do I lose?
    I should point out that regardless of the path I choose I will need to bone up on my programming skills in the corresponding language.
    Thanks for all your help!

    Hello Steverino!
    Here are some advantages when using LabWindows/CVI over Visual Studio, which make the product more suitable for various industry-related applications:
    You are correct, LabWindows/CVI integrates with the NI platform: NI hardware and software, like TestStand or LabVIEW (e.g. debugging source code from one software to another, seamlessly).
    NI hardware and third-party hardware connectivity.
    OpenMP support.
    CVI integrates with intrument control.
    CVI Run-Time benefits from User Protection.
    Run-Time checking (e.g. for uninitialized variables).
    Scientific User Interface Controls and GUI Editor.
    Advanced debugging capabilities:
    Remote debugging support from ADE.
    Real-Time debugging support from ADE.
    Memory leak detection using the LabWindows/CVI Resource Tracking Window.
    Just-In-Time debugging.
    Deployment: build custom installers and patches that you can ship as stand-alone easy-to-use installers.
    LabWindows/CVI libraries: Advanced Analysis, Toolbox, Connectivity (Network Variables, Network Streams, DataSocket), etc.
    Support for LabWindows/CVI Toolkits: SQL Toolkit, Vision, PID, RT.
    Regards,
    - Johannes.

  • Labwindows recompiles files when I switch from the development environment to another application

    I am writing a labwindows driver, but having issues with the environment itself.  I am able to compile the .c file for the driver, and my panels are working.  I am having problems with labwindows recompiling the .c file even though nothing has changed.  It is a random problem that I have seen before, but never managed to get around.  The problem shows up in a variety of instances.
    I.E.  While in interactive execution, I can click on another application on the taskbar (internet explorer, email, etc.)  and labwindows displays a message that the c file is being recompiled.  Nothing in the file changed!  Why does it try and recompile when it is simply losing focus?  This is 'random'.  Just when I think I have found a way to reliably reproduce the issue, it quits recompiling when I switch applications.  I have tried playing with the build options, but haven't had any repeatable success.  I even tried to enable the -o option, but is still recompiles the file.  (maybe -o won't work on a driver since it won't build without a main?)  I have even had issues with calling printf in a function during interactive execution.  It recompiles the c file for no apparent reason right after the stdio window prints the message.  At this point, the stdio window closes, and labwindows pops up the compiling message again.  It kills my interactive session, and I have to redeclare all of my variables to continue checking out my driver.
    I see the same issue randomly when I go back to the project from another application. (Click on labwindows in the taskbar, and it immediately compiles the c file.)
    I have seen this in other projects, and it appears that the issue is limited to instrument drivers.  When labwindows pops up the message that it is compiling files it is almost always a driver that is loaded as an instrument.  I played with unloading the instrument but leaving the .fp in the project, but I don't think that worked. (It has been awhile since I tried to figure this out.)  When working on a driver, it would be difficult to unload the .fp or not load the instrument anyway.
    (I just clicked on labwindows in the taskbar to see if I left anything out.  Labwindows popped up the message that it was compiling the c file.  It appears that I can go back and forth between the labwindows icon in the taskbar and the cvi icon ~15-20 times and then labwindows will recompile the file.  I even walked away from my computer for a couple of minutes, and it compiled when I came back and clicked on the labwindows icon.) 
    I am running labwindows 9.1 (but have seen this on 8 also)
    The files are on a network drive.
    (Could it be mcaffee or some network security stuff confusing labwindows?)

    My pc is currently running Windows XP sp3.
    I first saw this issue when I went from LabWindows 7.1? to 8.1?   I am sure that I had the issue in 8.1 
    I was able to reproduce the issue in production on a pc running windows 2000.  (Which is what I had at my desk previously, and had seen the issue.)
    I asked another member of the test engineering group, and I am not the only one seeing the issue.
    One of the earlier replies mentioned the auto save feature.  When I went to production to see if I could reproduce the problem there, I opened CVI and explorer.  I wanted to check the time-date stamp on the .c file that keeps recompiling.  The time-date stamp was a day old, and did not change when the period of time for auto save was passed.  (It probably would if I made changes but didn't save the file?)  I was able to switch back and forth between the explorer window and cvi, and the file would recompile.  I played with turning off the auto save, enabling the build status window, making the -o option compatible with cvi 5.0, displaying the build status column, etc.  It appeared at one point that it had quit recompiling when switching between applications.  I went back to my desk, and tried to match the settings, but never reached the same conclusion.
    There is not anything special about the project I am working on.  It is a labwindows driver for a pxi module.  There are only three files in the project, the .c .h and .fp.  The .c file keeps getting recompiled at seemingly random times.  It is especially frustrating during interactive execution while testing my code/function panels.  If I switch to another application and back, I almost always have to start over because compiling the file closes the interactive execution.  I have to redeclare all of the variables, and re-run any of the setup panels that are required.  (I have to open the DRM, load the module fpga/dac, and then I can run the panel I am actually trying to test.)  I have similar problems when trying to troubleshoot with printf statements, as it seems to recompile when focus switches to the stdio window.  I have resorted to a test project, where I can add the function calls and skip having to do any work via interactive execution.
    I haven't been able to find anyone outside of where I work reporting the same issue.  Maybe it has something to do with IT/viruscan/etc.  It is definately a strange issue.
    (I have switched back to CVI several times while writing this, and the .c filed recompiled about 20% of the time.  At one point,  I had left the build options dialog open when switching back and forth.  I did not change any options, but the .c file recompiled when I closed the options window?)
    Occasionally, when I see what appears to be the recompile message flash up, my interactive execution does not halt.  I.E. I don't have to redeclare my variables.  It is sometimes hard to see what the message says, you just see a dialog box pop up and disapear really quickly. 

  • Can't Ping or access via SNMP Inside interface of 5505

    I have a remote site I'm trying to setup monitoring on and I can't get the inside interface to respond to a ping or SNMP requests.  I have tried everything I can find in the forums and on the web but this location will not cooperate.  I have full access to the ASA and to the inside network behind it.  IPSEC VPN tunnel is working perfectly.  I see the ping requests in the log on the ASA.  I turned on ICMP debugging and only see the echo request.. never an echo reply.  Below is a partial configuration.  If you need any more information, let me know.
    names
    name 192.168.0.0 Domain
    name 1.1.1.2 MCCC_Outside
    name 172.31.10.0 VLAN10
    interface Ethernet0/0
     switchport access vlan 2
    interface Ethernet0/1
    interface Ethernet0/2
    interface Ethernet0/3
    interface Ethernet0/4
    interface Ethernet0/5
    interface Ethernet0/6
    interface Ethernet0/7
    interface Vlan1
     nameif inside
     security-level 100
     ip address 192.168.23.1 255.255.255.0
    interface Vlan2
     nameif outside
     security-level 0
     ip address 1.1.1.1 255.255.255.0
    boot system disk0:/asa847-k8.bin
    ftp mode passive
    clock timezone EST -5
    clock summer-time EDT recurring
    dns server-group DefaultDNS
     domain-name mtcomp.org
    object network obj-192.168.23.0
     subnet 192.168.23.0 255.255.255.0
    object network Domain
     subnet 192.168.0.0 255.255.0.0
    object network 172.31.0.0
     subnet 172.31.0.0 255.255.0.0
    access-list outside_1_cryptomap extended permit ip 192.168.23.0 255.255.255.0 any
    access-list outside_1_cryptomap extended permit ip 192.168.23.0 255.255.255.0 object Domain
    access-list inside_nat0_outbound extended permit ip 192.168.23.0 255.255.255.0 192.168.1.0 255.255.255.0
    access-list inside_nat0_outbound extended permit ip 192.168.23.0 255.255.255.0 object Domain
    access-list Outside_NAT0_inbound extended permit ip object Domain 192.168.23.0 255.255.255.0
    access-list inside_access_in extended permit ip 192.168.23.0 255.255.255.0 any
    access-list inside_access_in extended permit ip any 192.168.23.0 255.255.255.0 inactive
    no pager
    logging enable
    logging timestamp
    logging buffered debugging
    logging trap informational
    logging asdm informational
    logging device-id hostname
    logging host inside 192.168.x.x 17/1514
    mtu inside 1500
    mtu outside 1500
    no failover
    icmp unreachable rate-limit 1 burst-size 1
    icmp permit any inside
    no asdm history enable
    arp timeout 14400
    no arp permit-nonconnected
    nat (inside,any) source static obj-192.168.23.0 obj-192.168.23.0 destination static Domain Domain no-proxy-arp route-lookup
    route outside MCCC_Outside 255.255.255.255 1.1.1.1 1
    route outside 172.31.0.0 255.255.0.0 192.168.1.1 1
    route outside VLAN10 255.255.255.0 MCCC_Outside 1
    route outside Domain 255.255.0.0 192.168.1.1 1
    route outside 192.168.1.0 255.255.255.0 MCCC_Outside 1
    timeout xlate 3:00:00
    timeout pat-xlate 0:00:30
    timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
    timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
    timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
    timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute
    timeout tcp-proxy-reassembly 0:01:00
    timeout floating-conn 0:00:00
    dynamic-access-policy-record DfltAccessPolicy
    user-identity default-domain LOCAL
    aaa authentication ssh console LOCAL
    aaa authentication enable console LOCAL
    http server enable
    http 192.168.1.81 255.255.255.255 inside
    http 192.168.1.0 255.255.255.0 inside
    http 192.168.23.0 255.255.255.0 inside
    snmp-server host inside 172.x.x.x community ***** version 2c
    no snmp-server location
    no snmp-server contact
    snmp-server enable traps snmp authentication linkup linkdown coldstart
    crypto map outside_map 1 match address outside_1_cryptomap
    crypto map outside_map 1 set pfs group1
    crypto map outside_map 1 set peer MCCC_Outside
    crypto map outside_map 1 set ikev1 transform-set ESP-3DES-SHA
    crypto map outside_map 1 set ikev2 ipsec-proposal AES256 AES192 AES 3DES DES
    crypto map outside_map interface outside
    management-access inside
    class-map inspection_default
     match default-inspection-traffic
    policy-map type inspect dns preset_dns_map
     parameters
      message-length maximum client auto
      message-length maximum 512
    policy-map global_policy
     class inspection_default
      inspect dns preset_dns_map
      inspect ftp
      inspect h323 h225
      inspect h323 ras
      inspect ip-options
      inspect netbios
      inspect rsh
      inspect rtsp
      inspect skinny 
      inspect esmtp
      inspect sqlnet
      inspect sunrpc
      inspect tftp
      inspect sip 
      inspect xdmcp
      inspect icmp
    policy-map global-policy
    service-policy global_policy global
    prompt hostname context

    Hi,
    First of all let me clarify your trial.
    Where is your monitoring server?
    Is it behind inside or outside interface (please share ip adress)?
    From config it seems, it can be reach via outside interface. Then you have to make snmp check on outside interface, not on inside (cannot make a snmp/ping check on inside interface with request comming through outside inteface - it simply won't work).
    From the first check of routing table, I would suggest:
    delete : route outside MCCC_Outside 255.255.255.255 1.1.1.1 1 - doesn't make a sense route host address, when it's directly connected network (and more, route 1.1.1.2 to 1.1.1.1, when 1.1.1.1 is vlan2 interface)
    change : route outside 172.31.0.0 255.255.0.0 192.168.1.1 1; route outside Domain 255.255.0.0 192.168.1.1 1 - you should consider route it to 1.1.1.2 (if this is your next hop address at WAN).
    route outside VLAN10 255.255.255.0 MCCC_Outside 1 - why?
    I would use default route to somewhere at 1.1.1.0/24 range - next hop (router).
    HTH,
    Pavel

  • I am trying to build a basic TCL skeleton script that reads a remote SNMP OID and displays the value on the screen.

    I am trying to build a basic TCL skeleton script that reads a remote SNMP OID and displays the value on the screen.
    I don't want it to be an EEM Event, I just want to run it from the (tcl)# prompt.
    So I guess I'm asking if you can use cli_exec and other commands in the "namespace import ::cisco::eem::*" in a normal non-EEM script - can I do that?
    This is the error I get:
    OTN.159(tcl)#source flash:TCL_SNMP_Remote_Read.tcl
    invalid command name "::cisco::eem::event_register_none"             ^
    % Invalid input detected at '^' marker.
    What am I missing?
    =================  TCL_SNMP_Remote_Read.tcl  ==============================
    ::cisco::eem::event_register_none
    namespace import ::cisco::eem::*
    namespace import ::cisco::lib::*
    if [catch {cli_open} RESULT]
        { error $RESULT $errorInfo }
        else { array set cli1 $RESULT }
    if [catch {cli_exec $cli1(fd) "snmp get v2c 192.168.1.100 public timeout 1 oid 1.3.6.1.2.1.1.1.0" } RESULT]
           { error $RESULT $errorInfo  }
           else { set SnmpSysDesc $RESULT }
    if [catch {cli_close $cli1(fd) $cli1(tty_id)} RESULT] {
                error $RESULT $errorInfo
    puts $SnmpSysDesc
    =========================================================================
    In the sho-run config I have:
    event manager directory user policy "flash:/"
    event manager session cli username "cisco"
    Any help to get me started would be greatly appreciated!
    Tim

    If you don't want an EEM policy, then don't use any of the EEM constructs.  Instead, all you need is this:
    set output [exec "snmp get v2c 192.168.1.100 public timeout 1 oid 1.3.6.1.2.1.1.1.0"]puts $output

  • Interface errors (crc, in/output, collisions etc.) via snmp

    Hi,
    I'm trying to understand how to get interface errors via SNMP.  I do get stats via SNMP for ifInErrors / ifOutErrors etc, but I'm trying to get output via SNMP for the errors visible via the 'sh int x' command - CRC errors, input / output errors, collisions, runts. giants etc.).
    1) The SNMP ifInError / ifOutError seems to give an overall counter of all errors from the time the device has started - Am I correct about this?
    2) Is there any way I can get the interface-specific errors noted above via SNMP?
    Thanks,
    Mario

    Depends on the device and version of code, but most likely you will get what you want from the CISCO-IF-EXTENSION-MIB.  Look at objects like cieIfInRuntsErrs, cieIfInGiantsErrs, and cieIfInFramingErrs.  You will also get some ethernet-specific errors from the ETHERLIKE-MIB.

  • Bug report: vpn (ipsec) interface number in snmp always change

    Hi,
    this is a bug report for RV082 hardware version 3 and 4, firmware version 1.x, 2.x and 4.x (all latest versions). I hope someone from cisco/belkin reads it.
    Summary:
    The snmp interface number of a VPN Tunnel change when the VPN tunnel disconnect and then re-connects.
    What should happend:
    The VPN Tunnel number 1, should always have the same snmp interface number. In RV082 v4, this number should always be 10. For example, the LAN, WAN1 and WAN2 always have the same snmp interface number.
    What is the problem:
    The VPN Tunnel number 1 change the snmp interface number, from 10, to 11, to 12, etc.
    How to reproduce:
    create a VPN Tunnel using 2 RV082 or 1 RV082 and 1 RV042. Once the VPN Tunnel is connected write down the snmp interface number. A few days later, disconnect the cable of block internet access. Then restore the internet conection and write down the snmp interface number, you should note that the snmp interface number have changed.
    Tools used:
    PRTG Network Monitor
    Please take a look at the attached image, note all the "ppp" interfaces, theres only 1 VPN Tunnel (gateway-to-gateway) defined.

    Hi Tom,
    many thanks for your reply.
    I see that I have to call Tech-support, in order to report a very technical situation, explaining them this is a bug report and I want them to make a better product.
    Since I won't pay a dime for this problem to be fixed, I can only see pain in this path(calling to speak with a tech support representative).
    I also readed that Belkin has bought Linksys, so I don't know if the RV082 will remain with Cisco or will go with Belkin.
    So, my only hope is to document this bug, that is pressent inall firmware version and hardware version of the RV082 as of today.
    many thanks for your help,
    regards,
    Oliver

  • Questions on Receiving SNMP Traps

    Hi:
    - I have more questions on receiving SNMP traps:
    1) the OEM plug-in can receive traps now, but when I click the metric, I see:
    Error getting data for target test20. Exception: ORA-20216: ORA-06512: at "SYSMAN.EMD_MNTR", line 817 ORA-01403: no data found ORA-06512: at line 1
    - the push descriptor looks like:
    <PushDescriptor RECVLET_ID="SNMPTrap">
    <Property NAME="MatchEnterprise" SCOPE="GLOBAL">...</Property>
    <Property NAME="MatchGenericTrap" SCOPE="GLOBAL">6</Property> <Property NAME="MatchSpecificTrap" SCOPE="GLOBAL">31</Property> <Property NAME="MatchAgentAddr" SCOPE="INSTANCE">target_ip</Property>
    <Property NAME="EventsnChasFanIndexOID" SCOPE="GLOBAL">...</Property>
    <Property NAME="ContextsnChasFanDescriptionOID" SCOPE="GLOBAL">...</Property>
    <Property NAME="SeverityCode" SCOPE="GLOBAL">WARNING</Property>
    </PushDescriptor>
    - is the Key Property needed ?
    2) The alerts for some reason do not filter back to the all targets home page.
    - When I click the Home tab and goto to the 'All Targets' pane, I do not see the alert generated by the OEM plug-in.
    - What I am doing wrong ?
    3) Is it okay to receive traps with the metric usage set to either: HIDDEN or HIDDEN_COLLECT ?
    - Does this cause the errors I see in Q 1) ?
    Thanks
    John
    Edited by: user8826739 on Feb 23, 2010 7:05 AM

    Hi John,
    Can you post the full definition of the metric? You would need to use the Key property for each key column in the metric description.
    With the SNMP receivelet you can set up definitons for data points or alerts. I would assume (as I've never tried this ;) that if you set up the definition to be a data point, you would see data from the All Metrics page. To me, it wouldn't make sense for a metric that used the PushDescriptor SNMPTrap to have data to be viewed as the result of the SNMP trap coming is would be an alert. I will have to look into that. My gut reaction is that a metric with PushDescriptor SNMPTrap shouldn't even appear on the All Metrics page ...
    To be clear are you saying that you don't see the Warning number under "All Targets Alerts" increase by 1 when you SNMP trap is caught and alert is generated? When this occurs do you see the alert on the target instance homepage?
    In regards to HIDDEN and HIDDEN_COLLECT, I don't know what effect they would have on a metric defined for an SNMP trap to raise an alert. You definitely wouldn't want to use HIDDEN as this setting is for temporary metrics that are used in the caclulation of other metrics. HIDDEN metrics are not collected (or hence uploaded to the OMS) and don't appear in the UI. HIDDEN_COLLECT are collected, but do not show up in the UI and are not uploaded. I've never used this settings with SNMP trap metrics that are for alerts. If your metrics for the SNMP trap alerts do show up on the All Metrics page (I'd have to get something set up to look at this), then it could make sense to use the HIDDEN_COLLECT as the alert would still be generated, but the metric itself wouldn't be shown in the UI.
    Let me find out the expected behavior from someone on the agent team.
    Dave

  • Software Development Engineer positions at Hysitron, Inc. in Minneapolis (LabWindows CVI exp preferred)

    Software Development Engineer
    Hysitron, Inc. is a premier scientific instrument manufacturer. Founded in 1992 with headquarters located in Eden Prairie, MN we are committed to promoting nanotechnology by developing advanced transducer and control technology. This leadership has made Hysitron the world leader in nanomechanical test instruments. The TriboIndenter®, TriboScope®, Ubi, and other Hysitron innovations have opened new horizons for scientists interested in investigating and understanding mechanical properties of materials at nano-scale. Hysitron fosters an environment and culture where innovation flourishes, teamwork is encouraged, and superior performance is rewarded.
    Hysitron invites applications for multiple software development engineer positions from those aspiring to explore and succeed in the nano world. Hysitron, Inc. is an Equal Opportunity Employer M/F/D/V
    Job responsibilities
    The software development engineers would be responsible for developing test and measurement software applications for nano-mechanical testing instrumentation. Job deliverables would include:
    -          Develop software applications in C based Labwindows CVI for Hysitron Instrumentation
    -          Support the development of applications to address challenges in instrument automation and control
    -          Test software applications using debugging and simulation tools
    -          Perform software releases and software quality assurance activities
    -          Participate in the design of new software products
    -          Perform maintenance activities for existing products
    -          Adapt and deliver on quality software development practices
    Minimum qualifications
    -          BS in Computer Science/ Computer Engineering/ Equivalent Scientific or engineering discipline
    -          Min of 3 yrs experience in Instrumentation software development in an industrial or R&D environment
    -          Expert at programming language C, knowledge of C++
    -          Working knowledge of various communication protocols, e.g. USB, RS232, IEEE, RS485, TCP/IP, Modbus
    -          Knowledge of general software design/documentation processes in test and measurement systems
    -          Proficient problem solving skills
    -          Strong analytical and technical skills
    -          Excellent communication and interpersonal skills
    Preferred Qualifications
    -          Proficient with LabWindows CVI and XML
    -          Working experience with DSP(Code Composer Studio) and/or FPGA level programming
    -          Exposure to digital electronics and instrumentation
    -          Working experience in Robotics interface programming
    -          Experience with Controls/Automation engineering
    Application and Information
    Qualified candidates should send a letter of application and their resumes to (please include ‘SW Engineer’ in subject line):
    Hysitron, Inc.
    10025 Valley View Rd
    Eden Prairie, MN 55344 USA
    Phone: (952) 835-6366
    Fax: (952) 835-6166
    E-MAIL: [email protected]
    Web: www.hysitron.com

    This position is still accepting resumes/CVs.

  • How to do a SET using SNMP ?

    Hi,
    I already ask in the forum Advanced Language Topics
    http://forum.java.sun.com/thread.jsp?forum=4&thread=320674
    but I din't receive any answer so I try here maybe some one could help me on this ... ;-)
    I find a nice piece of code on Internet to do SNMP request �
    http://membres.lycos.fr/ysoun/index.html
    http://membres.lycos.fr/ysoun/sck.zip
    It works find to do some GET operations like doing a GET sysDescr (oid 1.3.6.1.2.1.1.1.0).
    But I would like to do a SET operation but I could'nt succeed.
    First I do a get on an oid 1.3.6.1.2.1.1.4.0 (sysContact) and I get the value "hello" which is find and I would like to set this value to "good bye".
    Well I have to say that I don�t know very well the SNMP protocol and I couldn�t figure out where to put the value in order to set "Good bye". Off course I have the right community to do that but I just can't figure out how can I do that ...
    Any comment ... help ... ideas ... are more than welcome !!!! Or maybe some better SNMP package to do that???
    thanks,
    Emmanuel
    Here is the code:
    the function to set using SNMP ...
      public static setSnmpRequest(int snmpPort, int snmpTimeout, String community, String host, String strValue){
          String oid = new String("1.3.6.1.2.1.1.4.0");
          D_SNMP.Message request;
          try {
              InetAddress snmpHost = InetAddress.getByName(host);
              DatagramSocket sock = new DatagramSocket();
              sock.setSoTimeout(snmpTimeout);
              // create pdu.
              //somewhere here I should include my variable "good bye" but I don't really know how
              Var var = new Var(oid);
              OctetString c = new OctetString(community);
              D_SNMP.Integer requestId = new D_SNMP.Integer(0);
              D_SNMP.Integer errorIndex = new D_SNMP.Integer(0);
              D_SNMP.Integer errorStatus = new D_SNMP.Integer(0);
              //For the GET:
              //PduCmd pdu = new PduCmd(Pdu.GET,requestId,errorStatus,errorIndex,new VarList(var));
              //What I would like to do:
              PduCmd pdu = new PduCmd(Pdu.SET,requestId,errorStatus,errorIndex,new VarList(var));
              D_SNMP.Message m = new D_SNMP.Message(c,pdu);
              // send
              byte[] b = m.codeBer();
              DatagramPacket packet = new DatagramPacket(b,b.length,snmpHost,snmpPort);
              byte[] b2 = new byte[1024];
              DatagramPacket p2 = new DatagramPacket(b2,b2.length);
              long startTime = System.currentTimeMillis();
              sock.send(packet);
              sock.receive(p2); // block or ... timeout.
              long time = (System.currentTimeMillis() - startTime);
              // display
              ByteArrayInputStream ber = new ByteArrayInputStream(b2,1,p2.getLength()-1); // without tag !
              D_SNMP.Message m2 = new D_SNMP.Message(ber);
              System.out.println("snmpPing " + host + " :");
              System.out.println(m2.getPdu().getVarList().elementAt(0) + " / time = " + time + "ms" );
              if (debug){
                  StringBuffer buf = new StringBuffer();
                  m2.println("",buf);
                  System.out.println(buf);
          } catch (UnknownHostException ex){
              System.out.println(host + ": unknown host." );
          } catch (InterruptedIOException ex){
              System.out.println("snmpPing "+ host + " : Time-out." );
          } catch ( Exception ex) {
              System.out.println("Error in : ");
              System.out.println(ex);
      } the class Var... where somewhere I should be able to set the variable "Good bye" ...
    import java.io.*;
    import java.util.Vector;
    /** ASN.1 grammar for Var:
    * Var ::=
    * SEQUENCE
    *        { name Oid
    *          value CHOICE {Null, Integer, Counter, gauge, Timeticks, IpAddress, OctetString}
    final public class Var extends construct implements Serializable {
      public Var(Oid o, smi s){
        this();
        valeur.addElement(o);
        valeur.addElement(s);
      /** Same as Var(new Oid(oid), new Null()).
      public Var(String oid) throws IOException{
        this(new Oid(oid), new D_SNMP.Null());
      /** Builds a Var from a ByteArrayInputStream holding a Var Ber coding.
       *  <BR>Bytes read are removed from the stream.
       *  <P><B>Note:</B> The ByteArrayInputStream must not contain the Var Tag.
       *  @exception IOException is thrown if a problem occurs while trying to decode the stream.
      public Var(ByteArrayInputStream inBer) throws IOException{
        this();
        decodeBer(inBer);
      /** Used only by VarList.
      Var(){
        super(smi.SEQUENCE_tag);
        valeur = new Vector(2);
      /** Returns the name of this Var.
      public Oid getName(){
        return (Oid) valeur.elementAt(0);
      /** Returns the value of this Var.
      public smi getValue(){
        return (smi) valeur.elementAt(1);
      /** Returns the value of this Var as a String.
      public String toString() {
        try{
        return ((smi)valeur.elementAt(0)).toString() + " = " + ((smi)valeur.elementAt(1)).toString();
        }catch (IndexOutOfBoundsException e) { // ne doit pas se produire.
          System.out.println("Erreur codage interne type Var.");
          System.exit(1);
        return null;
      /** Used smi.decodeBer().
      void decodeValeur(ByteArrayInputStream bufferBer, int lgBerValeur) throws IOException {
        int tag = bufferBer.read();
        if ( tag != smi.OID_tag )
          throw new IOException ("erreur decodage tag Oid de Var: byte " + java.lang.Integer.toHexString(tag) +" recu.");
        Oid name = new Oid(bufferBer);
        this.valeur.addElement(name);
        // lis l'objet suivant.
        tag = bufferBer.read();
        try{
        smi _valeur = smiFactory.create(tag,bufferBer);
        this.valeur.addElement(_valeur);
        } catch (IOException e){
          throw new IOException ("erreur decodage champ Valeur : " + e);
      /** Custom serialization: Ber coding is written in ObjectOutputStream.
      private void writeObject(ObjectOutputStream out) throws IOException{
        byte b[] = this.codeBer();
        out.writeInt(b.length);
        out.write(b);
        out.flush();
      private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        this._tag = smi.SEQUENCE_tag;
        this.valeur = new Vector();
        int len = in.readInt();
        byte b[] = new byte[len];
        in.readFully(b);
        this.decodeBer(new ByteArrayInputStream(b,1,b.length-1));
    } the class VarList ...
    import java.io.*;
    import java.util.Vector;
    /** ASN.1 grammar for VarList:
    * VarList ::=
    * SEQUENCE OF Var
    final public class VarList extends construct {
      /** Constructs a VarList holding a single Var.
       *  @param Var to be held by Varlist
       public VarList(Var v){
         super(smi.SEQUENCE_tag);
         valeur = new Vector(1);
         valeur.addElement(v);
      /** Constructs a VarList holding Vars.
       *  @param v Vector of Vars.
       public VarList(Vector v){
         super(smi.SEQUENCE_tag);
         valeur = (Vector) v.clone();
       /** Constructs a VarList holding Vars.
       *  @param tab array of Vars.
       public VarList(Var[] tab){
         super(smi.SEQUENCE_tag);
         int taille = tab.length;
         valeur = new Vector(taille);
         for (int i=0; i<taille; i++)
           valeur.addElement(tab);
    /** Builds a VarList from a ByteArrayInputStream holding a VarList Ber coding.
    * <BR>Bytes read are removed from the stream.
    * <P><B>Note:</B> The ByteArrayInputStream must not contain the Var Tag.
    * @exception IOException is thrown if a problem occurs while trying to decode the stream.
    public VarList(ByteArrayInputStream inBer) throws IOException{
    super(smi.SEQUENCE_tag);
    valeur = new Vector();
    decodeBer(inBer);
    /** Returns the Var at the specified index.
    public Var elementAt(int i) throws IndexOutOfBoundsException {
    return (Var)valeur.elementAt(i); // Sans soucis: Var est immutable
    /** Returns the number of Var held this VarList.
    public int getSize(){
    return valeur.size();
    /** Used by smi.decodeBer().
    * A VarList is in fact an array of Vars.
    void decodeValeur(ByteArrayInputStream bufferBer, int lgBerValeur) throws IOException {
    Var v;
    int lg;
    try{
    while (lgBerValeur >0){
    int tag = bufferBer.read();
    lgBerValeur --;
    if ( tag != smi.SEQUENCE_tag )
    throw new IOException ("error decoding tag Var in VarList: byte " +
    java.lang.Integer.toHexString(tag) +" read.");
    v =new Var();
    lg = v.decodeBer(bufferBer);
    this.valeur.addElement(v);
    lgBerValeur -= lg;
    } catch (IOException e){
    throw new IOException ("error decoding Value : " + e);

    I read the documentation it does not help me much, (it's generated by javadoc and there is not enought comment to understand the whole thing ... in fact it just miss a sample of SET request and it would be perfect ...
    thanks,
    emmanuel
    PS: I'm going to try the author again
    PS: Still ... any help or pakage to do SET request using SNMP are more than welcome ...

Maybe you are looking for

  • Text and table structure getting jumbled up in the smartform output

    Hi all , While viewing the print preview of a smartform output , i am facing  a strange issue. The hardcoded text is getting jumbled up .For eg:"As soon as possible"  becomes " as possible . soon as" The structure of the table is also getting reverse

  • EJB(EAR file) lookup from separate WAR file

    Hi I have 2 applications (EAR and WAR) deployed in an OC4J instance using Oracle 10g. All my EJB components are in my EAR file and all my front-end/servlet component are in the WAR file. My lookup in the servlet fails, like: 05/01/21 13:47:05 javax.n

  • Multiple String Value Test

    Hi, I have a unit under test which dumps data from RS232 when powered on. How can I use teststand to look for certain keywords from the data dump? The keywords are spread all over the place. They are not next to each other. Thanks, Rahim

  • Applecare - too late to buy it?

    If my original warranty has run out, do I take it that I can no longer buy applecare? I feel well stupid right now, cos the warranty has run out like maybe 3 weeks ago, and now my laptop decides to stop being able to charge batteries (and no, it's no

  • Larger Video Play Buttons in Flash

    How do you get larger video play/pause buttons when importing a video in to Flash. My current buttons are too small and I need to find larger ones. How do you do that?