55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
#pragma once
|
|
#include <fstream>
|
|
#include <vector>
|
|
#include <iostream>
|
|
#include <stdio.h>
|
|
union HG_Dail_Struct
|
|
{
|
|
struct
|
|
{
|
|
std::uint32_t in_voltage0 : 1 ;
|
|
std::uint32_t in_voltage2 : 1 ;
|
|
std::uint32_t in_voltage3 : 1 ;
|
|
std::uint32_t in_voltage4 : 1 ;
|
|
}dails;
|
|
std::uint8_t value;
|
|
};
|
|
|
|
const std::string voltage0 = "/sys/bus/iio/devices/iio:device0/in_voltage0_raw";
|
|
const std::string voltage2 = "/sys/bus/iio/devices/iio:device0/in_voltage2_raw";
|
|
const std::string voltage3 = "/sys/bus/iio/devices/iio:device0/in_voltage3_raw";
|
|
const std::string voltage4 = "/sys/bus/iio/devices/iio:device0/in_voltage4_raw";
|
|
|
|
|
|
class Dail{
|
|
public:
|
|
Dail(){
|
|
dail_value = {0};
|
|
dail_inti();
|
|
}
|
|
HG_Dail_Struct GetValue(){
|
|
return dail_value;
|
|
}
|
|
private:
|
|
void dail_inti()
|
|
{
|
|
std::vector<std::string> voltages;
|
|
voltages.push_back(voltage0);
|
|
voltages.push_back(voltage2);
|
|
voltages.push_back(voltage3);
|
|
voltages.push_back(voltage4);
|
|
for(int i = 0 ; i<voltages.size();i++){
|
|
int tmp = 0;
|
|
FILE* fd = fopen(voltages[i].c_str(),"r");
|
|
if(fd != NULL)
|
|
{
|
|
fscanf(fd, "%d", &tmp);
|
|
if(tmp < 500)
|
|
dail_value.value |= (1<<i);
|
|
fclose(fd);
|
|
}
|
|
}
|
|
}
|
|
HG_Dail_Struct dail_value;
|
|
|
|
}; |