35 std::ifstream confFile(fileName.c_str());
36 BUException::WIB_BAD_ARGS badFile;
40 badFile.Append(
"Bad SI5344 config file name:");
41 badFile.Append(fileName.c_str());
44 if(getenv(
"WIBMOD_SHARE") != NULL){
45 std::string envBasedFileName=getenv(
"WIBMOD_SHARE");
46 envBasedFileName+=
"/config/WIB1/config/";
48 confFile.open(envBasedFileName.c_str());
50 badFile.Append(
"Bad env based filename:");
51 badFile.Append(envBasedFileName.c_str());
62 if(
Read(
"DTS.SI5344.RESET") != 0){
63 Write(
"DTS.SI5344.RESET",0x0);
68 Write(
"DTS.SI5344.I2C.RESET",1);
70 std::vector<std::pair<uint16_t,uint8_t> > writes;
71 while(!confFile.eof()){
73 std::getline(confFile,line);
76 }
else if(line[0] ==
'#'){
78 }
else if(line[0] ==
'A'){
81 if( line.find(
',') == std::string::npos ){
82 printf(
"Skipping bad line: \"%s\"\n",line.c_str());
85 uint16_t address = strtoul(line.substr(0,line.find(
',')).c_str(),NULL,16);
86 uint8_t data = strtoul(line.substr(line.find(
',')+1).c_str(),NULL,16);
87 writes.push_back(std::pair<uint16_t,uint8_t>(address,data));
92 Write(
"DTS.SI5344.ENABLE",0x0);
95 unsigned int percentDone = 0;
98 printf(
"\n[==================================================]\n");
100 for(
size_t iWrite = 0; iWrite < writes.size();iWrite++){
114 uint8_t address = writes[iWrite].first & 0xFF;
115 uint32_t data = (writes[iWrite].second) & 0xFF;
118 for(
size_t iTries = 10; iTries > 0;iTries--){
121 }
catch (BUException::WIB_ERROR & e){
123 Write(
"DTS.SI5344.I2C.RESET",1);
125 e.Append(
"\nTried 10 times\n");
130 if((100*iWrite)/writes.size() > percentDone){
void WriteI2C(std::string const &base_address, uint16_t I2C_address, uint32_t data, uint8_t byte_count=4, bool ignore_error=false)