Changeset 8112

Show
Ignore:
Timestamp:
03/19/08 02:26:34 (16 months ago)
Author:
mootoh
Message:

lang/cplusplus/gainer++: implementing ain for MODE_1. something wrong here.

Location:
lang/cplusplus/gainer++
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/gainer++/gainer-button.cc

    r8111 r8112  
    4242    std::cerr << "process_next_event" << std::endl; 
    4343    //gainer->process_next_event(); 
    44     //gainer->peek_analog_inputs(); 
    45     gainer->peek_digital_inputs(); 
     44    gainer->peek_analog_inputs(); 
     45    //gainer->peek_digital_inputs(); 
    4646    usleep(100000); 
    4747    /* 
  • lang/cplusplus/gainer++/gainer.cc

    r8111 r8112  
    66#include <sys/select.h> 
    77#include "gainer.h" 
    8 #include <cassert> 
     8#include <iomanip> 
    99 
    1010#define ABORT_UNLESS(stmt) \ 
     
    155155    case 'I': { // analog_input 
    156156      std::string::size_type ast(event.find('*')); 
    157       std::string nums(event.substr(1, ast-1)); 
    158       std::cout << nums << std::endl; 
    159       for (int i(1); ; i++) { 
    160         char ch(event[i]); 
    161         if (isdigit(ch) or ('A' <= ch and 'F' >= ch)) 
    162           digital_inputs[i-1] = ch-'0'; 
    163         else 
    164           break; 
    165       } 
     157      std::string s(event.substr(1, ast-1)); 
     158      sscanf(s.c_str(), "%02X%02X%02X%02X*", 
     159        &analog_inputs[0], &analog_inputs[1], 
     160        &analog_inputs[2], &analog_inputs[3]); 
    166161      break; 
    167162    }