rk3399_arm_lvds/packages/common.pkg/include/dailex.hpp

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;
};