Subversion Repositories f9daq

Rev

Blame | Last modification | View Log | RSS feed

  1. #include <utility.h>
  2. #include <ansi_c.h>
  3. #include <cvirte.h>
  4. #include "usbtc08.h"
  5.  
  6. #define NCH 4
  7.  
  8. int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  9.                                            LPSTR lpszCmdLine, int nCmdShow)
  10. {
  11.         int i,no_of_units, minimum_interval;
  12.         int16_t channel, overflow_flags;
  13.         int16_t new_handle, handle, error_code, handle_array[10];
  14.         float value_array[9];
  15.         char tc08string[USBTC08_MAX_INFO_CHARS];
  16.         USBTC08_INFO tc08info;
  17.        
  18.         if (InitCVIRTE (hInstance, 0, 0) == 0)
  19.                 return -1;    /* out of memory */
  20.  
  21.         for (i = 0; (new_handle = usb_tc08_open_unit()) > 0; i++)
  22.         {
  23. // store the handle in an array
  24.                 handle_array[i] = new_handle;
  25.         }
  26.         no_of_units = i;
  27.         printf ("no. of units: %d\n",no_of_units);
  28. // deal with the error if there is one, if new_handle was zero, then
  29. // there was no error and we reached the last available unit
  30.         if (new_handle == -1)
  31.         {
  32.                 error_code = usb_tc08_get_last_error(0);
  33.                 printf("Unit failed to open\nThe error code is %d\n", error_code);
  34. // could terminate the application here
  35.                 return 1;
  36.         }
  37. //      Delay(5.);
  38.  
  39.         handle = handle_array[0];
  40.         usb_tc08_get_unit_info(handle_array[0], &tc08info);
  41.         usb_tc08_get_formatted_info(handle, tc08string, USBTC08_MAX_INFO_CHARS);
  42.         printf ("%s\n",tc08string);
  43.         usb_tc08_get_unit_info2(handle, tc08string, USBTC08_MAX_INFO_CHARS, USBTC08LINE_BATCH_AND_SERIAL);
  44.         printf ("%s\n",tc08string);
  45.  
  46. //========================================================
  47. // Setting up and converting readings with Get Single mode
  48. //========================================================
  49.         usb_tc08_set_mains(handle, 0); // use 50Hz mains noise rejection
  50. //      for (channel = 0; channel < USBTC08_MAX_CHANNELS + 1; channel++)
  51.         for (channel = 0; channel < NCH+1; channel++)
  52.         {
  53. // Set each channel up as a type K thermocouple
  54. // Channel 0 is the cold junction and will be enabled
  55. // by setting the third argument to anything other than ' '
  56.                 usb_tc08_set_channel(handle, channel, 'K');
  57.         }
  58. // Find out the approximate conversion time for a call to
  59. // usb_tc08_get_single
  60.         minimum_interval = usb_tc08_get_minimum_interval_ms(handle);
  61.         printf("Conversion time: %d\n", minimum_interval);
  62. // Collect readings
  63.         for (i = 0; i < 20; i++)
  64.         {
  65. // do the conversion for all channels
  66.                 usb_tc08_get_single(handle, value_array, &overflow_flags, 0);
  67. // print out the values
  68. //              printf("\n\nTime: %d minute(s)", i);
  69.                 for (channel = 0; channel < NCH+1; channel++)
  70.                 {
  71. // Check for overflows on each channel
  72. // with a bitwise & comparator
  73. // Shift the comparison bit to match the channel
  74.                         if (overflow_flags &(1 << channel))
  75.                         {
  76.                                 printf("\nChannel %d overflowed", channel);
  77.                         }
  78.                         else // no overflow
  79.                         {
  80.                                 printf("\nChannel %d: %f", channel, value_array[channel]);
  81.                         }
  82.                 }
  83.                 Delay(2.);
  84.         }
  85.         for (i = 0; i < no_of_units; i++)
  86.         {
  87.                 usb_tc08_close_unit(handle_array[i]);
  88.         }
  89.         Delay(2.);
  90.         return 0;
  91. }