Ejemplo n.º 1
0
TEST(TestCPUInfo, getTemperature)
{
  TemporarySetting command(CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_cpuTempCmd, "echo '50 c'");
  CTemperature t;
  EXPECT_TRUE(g_cpuInfo.getTemperature(t));
  EXPECT_TRUE(t.IsValid());
}
Ejemplo n.º 2
0
TEST(TestCPUInfo, getTemperature)
{
    TemporarySetting command(g_advancedSettings.m_cpuTempCmd, "echo '50 c'");
    CTemperature t;
    EXPECT_TRUE(g_cpuInfo.getTemperature(t));
    EXPECT_TRUE(t.IsValid());
}
Ejemplo n.º 3
0
std::string CLangInfo::GetTemperatureAsString(const CTemperature& temperature) const
{
  if (!temperature.IsValid())
    return g_localizeStrings.Get(13205); // "Unknown"

  CTemperature::Unit temperatureUnit = GetTemperatureUnit();
  return StringUtils::Format("%s%s", temperature.ToString(temperatureUnit).c_str(), GetTemperatureUnitString().c_str());
}
Ejemplo n.º 4
0
CTemperature CTemperature::operator /(const CTemperature& right) const
{
  ASSERT(IsValid());
  ASSERT(right.IsValid());

  CTemperature temp(*this);
  if (!IsValid() || !right.IsValid())
    temp.SetState(invalid);
  else
    temp.m_value/=right.m_value;
  return temp;
}
Ejemplo n.º 5
0
CTemperature CTemperature::operator *(const CTemperature& right) const
{
    assert(IsValid());
    assert(right.IsValid());

    CTemperature temp(*this);
    if (!IsValid() || !right.IsValid())
        temp.SetState(invalid);
    else
        temp.m_value*=right.m_value;
    return temp;
}
Ejemplo n.º 6
0
bool CTemperature::operator ==(const CTemperature& right) const
{
  ASSERT(IsValid());
  ASSERT(right.IsValid());

  if (!IsValid() || !right.IsValid())
    return false;

  if (this==&right)
    return true;

  return (m_value==right.m_value);
}
Ejemplo n.º 7
0
bool CTemperature::operator <(const CTemperature& right) const
{
    assert(IsValid());
    assert(right.IsValid());

    if (!IsValid() || !right.IsValid())
        return false;

    if (this==&right)
        return false;

    return (m_value<right.m_value);
}
Ejemplo n.º 8
0
bool CCPUInfo::getTemperature(CTemperature& temperature)
{
  int         value = 0;
  char        scale = 0;
  
#if defined(TARGET_DARWIN_OSX)
  value = SMCGetTemperature(SMC_KEY_CPU_TEMP);
  scale = 'c';
#else
  int         ret   = 0;
  FILE        *p    = NULL;
  CStdString  cmd   = g_advancedSettings.m_cpuTempCmd;

  temperature.SetState(CTemperature::invalid);

  if (cmd.IsEmpty() && m_fProcTemperature == NULL)
    return false;

  if (!cmd.IsEmpty())
  {
    p = popen (cmd.c_str(), "r");
    if (p)
    {
      ret = fscanf(p, "%d %c", &value, &scale);
      pclose(p);
    }
  }
  else
  {
    // procfs is deprecated in the linux kernel, we should move away from
    // using it for temperature data.  It doesn't seem that sysfs has a
    // general enough interface to bother implementing ATM.
    
    rewind(m_fProcTemperature);
    fflush(m_fProcTemperature);
    ret = fscanf(m_fProcTemperature, "temperature: %d %c", &value, &scale);
    
    // read from the temperature file of the new kernels
    if (!ret)
    {
      ret = fscanf(m_fProcTemperature, "%d", &value);
      value = value / 1000;
      scale = 'c';
      ret++;
    }
  }

  if (ret != 2)
    return false; 
#endif

  if (scale == 'C' || scale == 'c')
    temperature = CTemperature::CreateFromCelsius(value);
  else if (scale == 'F' || scale == 'f')
    temperature = CTemperature::CreateFromFahrenheit(value);
  else
    return false;
  
  return true;
}
Ejemplo n.º 9
0
TEST(TestCPUInfo, getTemperature)
{
  CTemperature t;
  EXPECT_TRUE(g_cpuInfo.getTemperature(t));
  EXPECT_TRUE(t.IsValid());
}
Ejemplo n.º 10
0
void CWeatherJob::FormatTemperature(CStdString &text, int temp)
{
  CTemperature temperature = CTemperature::CreateFromCelsius(temp);
  text.Format("%.0f", temperature.ToLocale());
}
Ejemplo n.º 11
0
void CWeatherJob::FormatTemperature(std::string &text, double temp)
{
  CTemperature temperature = CTemperature::CreateFromCelsius(temp);
  text = StringUtils::Format("%.0f", temperature.To(g_langInfo.GetTemperatureUnit()));
}