home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / os2upsd.zip / upsctrl.cpp < prev    next >
C/C++ Source or Header  |  1997-10-18  |  2KB  |  78 lines

  1. #include "upsctrl.h"
  2.  
  3. void UPSPowerOff(HFILE com)
  4. {
  5.   BYTE ch = 0xFF;
  6.   unsigned long datasize = sizeof(ch);
  7.  
  8.   while (1)
  9.   {
  10.     DosDevIOCtl(com, 0x01, 0x44, &ch, datasize, &datasize, NULL, 0, NULL);
  11.     DosSleep(10);
  12.   }
  13. }
  14.  
  15. void SetBitRate(HFILE com, WORD rate)
  16. {
  17.   WORD param = rate;
  18.   unsigned long paramsize = sizeof(param);
  19.  
  20.   DosDevIOCtl(com, 0x01, 0x42, ¶m, paramsize, ¶msize, NULL, 0, NULL);
  21. }
  22.  
  23. void RaiseDTR(HFILE com)
  24. {
  25.   struct {
  26.   BYTE setON;
  27.   BYTE setOFF;
  28.   } param;
  29.   WORD data;
  30.   unsigned long paramsize = sizeof(param);
  31.   unsigned long datasize = sizeof(data);
  32.  
  33.   param.setON = 0x01;
  34.   param.setOFF = 0xFF;
  35.   DosDevIOCtl(com, 0x01, 0x46, ¶m, paramsize, ¶msize, &data, datasize, &datasize);
  36. }
  37.  
  38. void LowerDTR(HFILE com)
  39. {
  40.   struct {
  41.   BYTE setON;
  42.   BYTE setOFF;
  43.   } param;
  44.   WORD data;
  45.   unsigned long paramsize = sizeof(param);
  46.   unsigned long datasize = sizeof(data);
  47.  
  48.   param.setON = 0x00;
  49.   param.setOFF = 0xFE;
  50.   DosDevIOCtl(com, 0x01, 0x46, ¶m, paramsize, ¶msize, &data, datasize, &datasize);
  51. }
  52.  
  53. int CheckDSR(HFILE com)
  54. {
  55.   BYTE data;
  56.   unsigned long datasize = sizeof(data);
  57.  
  58.   data = 0;
  59.   DosDevIOCtl(com, 0x01, 0x67, NULL, 0, NULL, &data, datasize, &datasize);
  60.   return ((data & 32) != 0);
  61. }
  62.  
  63. int CheckState(HFILE com)
  64. {
  65.   BYTE data;
  66.   unsigned long datasize = sizeof(data);
  67.   int ret = ST_OK;
  68.  
  69.   data = 0;
  70.   DosDevIOCtl(com, 0x01, 0x67, NULL, 0, NULL, &data, datasize, &datasize);
  71.   if (data & PRT_DSR)
  72.   {
  73.     if (!(data & PRT_CTS)) return ST_POWERLOW;
  74.     if (!(data & PRT_DCD)) return ST_POWERFAIL;
  75.   }
  76.   return ret;
  77. }
  78.