Esempio n. 1
0
void _st_vp_schedule(void)
{
	st_thread_t *thread;

	while (_ST_RUNQ.next != &_ST_RUNQ) {
		/* Pull thread off of the run queue */
		thread = _ST_THREAD_PTR(_ST_RUNQ.next);
		_ST_DEL_RUNQ(thread);
		ST_ASSERT(thread->state == _ST_ST_RUNNABLE);
		/* Resume the thread */
		thread->state = _ST_ST_RUNNING;
		_ST_RESTORE_CONTEXT(thread);
	}

   {
		/* If there are no threads to run, switch to the idle thread */
		thread = _st_this_vp.idle_thread;
		ST_ASSERT(thread->state == _ST_ST_RUNNABLE);
		thread->state = _ST_ST_RUNNING;
		_ST_RESTORE_CONTEXT(thread);
		/* Resume the thread */
	
	}


}
Esempio n. 2
0
/**************************************************************************************************
 * @fn          HalMagTest
 *
 * @brief       Run a sensor self-test
 *
 * @return      TRUE if passed, FALSE if failed
 **************************************************************************************************/
bool HalMagTest(void)
{
  uint8 val;

  // Select this sensor on the I2C bus
  HalMagSelect();

  // Check who-am-i register
  ST_ASSERT(HalSensorReadReg(MAG_REG_ADDR_WHO_AM_I, &val, sizeof(val)));
  ST_ASSERT(val==WHO_AM_I_VALUE);

  // Check CTRL_REG1 in standby mode
  ST_ASSERT(HalSensorReadReg(MAG_REG_ADDR_CTRL_1, &val, sizeof(val)));
  ST_ASSERT(val==MAG_REG_CTRL_OFF);

  // Check that CTRL_REG1 can be written
  val = CTRL1_TEST_VALUE;
  ST_ASSERT(HalSensorWriteReg(MAG_REG_ADDR_CTRL_1, &val, sizeof(val)));
  ST_ASSERT(HalSensorReadReg(MAG_REG_ADDR_CTRL_1, &val, sizeof(val)));
  ST_ASSERT(val==CTRL1_TEST_VALUE);

  // Restore default value
  val = MAG_REG_CTRL_OFF;
  ST_ASSERT(HalSensorWriteReg(MAG_REG_ADDR_CTRL_1, &val, sizeof(val)));

  // Check that the sensor is in standby mode
  ST_ASSERT(HalSensorReadReg(MAG_REG_ADDR_SYSMOD, &val, sizeof(val)));
  ST_ASSERT(val==0);

  return TRUE;
}
Esempio n. 3
0
void _st_vp_check_clock(void)
{
  _st_thread_t *thread;
  st_utime_t elapsed, now;
 
  now = st_utime();
  elapsed = now - _ST_LAST_CLOCK;
  _ST_LAST_CLOCK = now;

  if (_st_curr_time && now - _st_last_tset > 999000) {
    _st_curr_time = time(NULL);
    _st_last_tset = now;
  }

  while (_ST_SLEEPQ != NULL) {
    thread = _ST_SLEEPQ;
    ST_ASSERT(thread->flags & _ST_FL_ON_SLEEPQ);
    if (thread->due > now)
      break;
    _ST_DEL_SLEEPQ(thread);

    /* If thread is waiting on condition variable, set the time out flag */
    if (thread->state == _ST_ST_COND_WAIT)
      thread->flags |= _ST_FL_TIMEDOUT;

    /* Make thread runnable */
    ST_ASSERT(!(thread->flags & _ST_FL_IDLE_THREAD));
    thread->state = _ST_ST_RUNNABLE;
    _ST_ADD_RUNQ(thread);
  }
}
Esempio n. 4
0
File: io.c Progetto: 13916688528/srs
_st_netfd_t *st_accept(_st_netfd_t *fd, struct sockaddr *addr, int *addrlen, st_utime_t timeout)
{
    int osfd, err;
    _st_netfd_t *newfd;
    _st_netfd_t **p = (_st_netfd_t **) fd->aux_data;
    ssize_t n;
    char c;
    
    for ( ; ; ) {
        if (p == NULL) {
            osfd = accept(fd->osfd, addr, (socklen_t *)addrlen);
        } else {
            /* Get the lock */
            n = st_read(p[0], &c, 1, timeout);
            if (n < 0) {
                return NULL;
            }
            ST_ASSERT(n == 1);
            /* Got the lock */
            osfd = accept(fd->osfd, addr, (socklen_t *)addrlen);
            /* Unlock */
            err = errno;
            n = st_write(p[1], &c, 1, timeout);
            ST_ASSERT(n == 1);
            errno = err;
        }
        if (osfd >= 0) {
            break;
        }
        if (errno == EINTR) {
            continue;
        }
        if (!_IO_NOT_READY_ERROR) {
            return NULL;
        }
        /* Wait until the socket becomes readable */
        if (st_netfd_poll(fd, POLLIN, timeout) < 0) {
            return NULL;
        }
    }
    
    /* On some platforms the new socket created by accept() inherits */
    /* the nonblocking attribute of the listening socket */
#if defined (MD_ACCEPT_NB_INHERITED)
    newfd = _st_netfd_new(osfd, 0, 1);
#elif defined (MD_ACCEPT_NB_NOT_INHERITED)
    newfd = _st_netfd_new(osfd, 1, 1);
#else
    #error Unknown OS
#endif
    
    if (!newfd) {
        err = errno;
        close(osfd);
        errno = err;
    }
    
    return newfd;
}
/**************************************************************************************************
 * @fn          sensorMpu6500Test
 *
 * @brief       Run a sensor self-test
 *
 * @return      TRUE if passed, FALSE if failed
 */
bool sensorMpu6500Test(void)
{
  // Select this sensor on the I2C bus
  sensorMpu6500Select();
  
  // Check the WHO AM I register
  ST_ASSERT(sensorReadReg(WHO_AM_I, &val, 1));
  ST_ASSERT(val == 0x70);

  return true;
}
Esempio n. 6
0
/**************************************************************************************************
* @fn          HalHumiTest
*
* @brief       Humidity sensor self test
*
* @return      none
**************************************************************************************************/
bool HalHumiTest(void)
{
  uint8 val;

  HalHumiSelect();

  // Verify default value
  ST_ASSERT(HalSensorReadReg(SHT21_CMD_READ_U_R,&val,1));
  ST_ASSERT(val==usr);

  return TRUE;
}
Esempio n. 7
0
/**
 * Return color conversion shader part from StImage definition.
 */
static inline StGLImageProgram::FragToRgb getColorShader(const StImage::ImgColorModel theColorModel,
                                                         const StImage::ImgColorScale theColorScale) {
    switch(theColorModel) {
        case StImage::ImgColor_RGB:  return StGLImageProgram::FragToRgb_FromRgb;
        case StImage::ImgColor_RGBA: return StGLImageProgram::FragToRgb_FromRgba;
        case StImage::ImgColor_GRAY: return StGLImageProgram::FragToRgb_FromGray;
        case StImage::ImgColor_XYZ:  return StGLImageProgram::FragToRgb_FromXyz;
        case StImage::ImgColor_YUV: {
            switch(theColorScale) {
                case StImage::ImgScale_Mpeg9:  return StGLImageProgram::FragToRgb_FromYuv9Mpeg;
                case StImage::ImgScale_Mpeg10: return StGLImageProgram::FragToRgb_FromYuv10Mpeg;
                case StImage::ImgScale_Jpeg9:  return StGLImageProgram::FragToRgb_FromYuv9Full;
                case StImage::ImgScale_Jpeg10: return StGLImageProgram::FragToRgb_FromYuv10Full;
                case StImage::ImgScale_Mpeg:   return StGLImageProgram::FragToRgb_FromYuvMpeg;
                case StImage::ImgScale_Full:   return StGLImageProgram::FragToRgb_FromYuvFull;
                case StImage::ImgScale_NvMpeg: return StGLImageProgram::FragToRgb_FromYuvNvMpeg;
                case StImage::ImgScale_NvFull: return StGLImageProgram::FragToRgb_FromYuvNvFull;
            }
            return StGLImageProgram::FragToRgb_FromYuvFull;
        }
        default: {
            ST_DEBUG_LOG("No GLSL shader for this color model = " + theColorModel);
            ST_ASSERT(false, "StGLImageProgram::getColorShader() - unsupported color model!");
        }
    }
    return StGLImageProgram::FragToRgb_FromRgb;
}
Esempio n. 8
0
StGLFrameTextures::~StGLFrameTextures() {
    ST_ASSERT(!myTextures[0].isValid()
           && !myTextures[1].isValid()
           && !myTextures[2].isValid()
           && !myTextures[3].isValid(),
              "~StGLFrameTextures() with unreleased GL resources");
}
/**************************************************************************************************
* @fn          sensorSht21Test
*
* @brief       Humidity sensor self test
*
* @return      none
**************************************************************************************************/
bool sensorSht21Test(void)
{
  uint8_t val;

  SENSOR_SELECT();

  // Verify write and read
  val = USR_REG_TEST_VAL;
  ST_ASSERT(sensorWriteReg(SHT21_CMD_WRITE_U_R,&val,1));
  ST_ASSERT(sensorReadReg(SHT21_CMD_READ_U_R,&val,1));
  ST_ASSERT(val == USR_REG_TEST_VAL);
  
  SENSOR_DESELECT();
  
  return true;
}
Esempio n. 10
0
/*
 * If "expired" is true, a sleeper has timed out
 */
void _st_del_sleep_q(st_thread_t *thread, int expired)
{
	st_clist_t *q;
	st_thread_t *t;

	/* Remove from sleep queue */
	ST_ASSERT(thread->flags & _ST_FL_ON_SLEEPQ);
	q = thread->links.next;
	if (q != &_ST_SLEEPQ) {
		if (expired) {
			_ST_SLEEPQMAX -= thread->sleep;
		}
		else {
			t = _ST_THREAD_PTR(q);
			t->sleep += thread->sleep;
		}
	}
	else {
		/*
		 * Check if prev is the beginning of the list; if so,
		 * we are the only element on the list.
		 */
		if (thread->links.prev != &_ST_SLEEPQ)
			_ST_SLEEPQMAX -= thread->sleep;
		else
			_ST_SLEEPQMAX = 0;
	}
	thread->flags &= ~_ST_FL_ON_SLEEPQ;
	ST_REMOVE_LINK(&thread->links);
}
Esempio n. 11
0
ST_HIDDEN void _st_kq_addlist_add(const struct kevent *kev)
{
    ST_ASSERT(_st_kq_data->addlist_cnt < _st_kq_data->addlist_size);
    memcpy(_st_kq_data->addlist + _st_kq_data->addlist_cnt, kev,
           sizeof(struct kevent));
    _st_kq_data->addlist_cnt++;
}
Esempio n. 12
0
bool StLibrary::loadSimple(const StString& thePath) {
    // this is probably some logical error in the code if close() wasn't explicitly called before!
    ST_ASSERT(!isOpened(), "StLibrary::load() - library is already opened!");
    close();
    myPath = thePath;
    myLibH = DLibLoadFull(myPath);
    return isOpened();
}
Esempio n. 13
0
 ST_LOCAL StGLMenuActionItem(StGLMenu*                 theParent,
                             const StHandle<StAction>& theAction,
                             StGLMenu*                 theSubMenu)
 : StGLMenuItem(theParent, 0, 0, theSubMenu),
   myAction(theAction) {
     ST_ASSERT(!theAction.isNull(), "StGLMenuActionItem - Unexpected empty action makes no sense!");
     StGLMenuItem::signals.onItemClick.connect(this, &StGLMenuActionItem::doItemClick);
 }
Esempio n. 14
0
StGLMesh::~StGLMesh() {
    ST_ASSERT(!myVertexBuf.isValid()
           && !myNormalBuf.isValid()
           && !myTCoordBuf.isValid()
           && !myColorsBuf.isValid()
           && !myIndexBuf.isValid(),
              "~StGLMesh() with unreleased GL resources");
}
Esempio n. 15
0
StGLStereoFrameBuffer::~StGLStereoFrameBuffer() {
    ST_ASSERT(myGLFBufferIds[StGLStereoTexture::LEFT_TEXTURE]  == StGLFrameBuffer::NO_FRAMEBUFFER
           && myGLFBufferIds[StGLStereoTexture::RIGHT_TEXTURE] == StGLFrameBuffer::NO_FRAMEBUFFER
           && myGLDepthRBIds[StGLStereoTexture::LEFT_TEXTURE]  == StGLFrameBuffer::NO_RENDERBUFFER
           && myGLDepthRBIds[StGLStereoTexture::RIGHT_TEXTURE] == StGLFrameBuffer::NO_RENDERBUFFER
           && !myVerticesBuf.isValid()
           && !myTexCoordBuf.isValid(),
              "~StGLStereoFrameBuffer() with unreleased GL resources");
}
Esempio n. 16
0
/*******************************************************************************
* @fn          sensorHdc1000Test
*
* @brief       Humidity sensor self test
*
* @return      true if test passes
*******************************************************************************/
bool sensorHdc1000Test(void)
{
  uint16_t val;

  SENSOR_SELECT();

  // Verify manufacturer ID
  ST_ASSERT(sensorReadReg(HDC1000_REG_MANF_ID,(uint8_t*)&val,2));
  val = SWAP(val);
  ST_ASSERT(val == HDC1000_VAL_MANF_ID);

  // Verify device ID
  ST_ASSERT(sensorReadReg(HDC1000_REG_DEV_ID,(uint8_t*)&val,2));
  val = SWAP(val);
  ST_ASSERT(val == HDC1000_VAL_DEV_ID);
  SENSOR_DESELECT();

  return true;
}
Esempio n. 17
0
void _st_add_sleep_q(st_thread_t *thread, st_utime_t timeout)
{
	st_utime_t sleep;
	st_clist_t *q;
	st_thread_t *t;

	/* sort onto global sleep queue */
	sleep = timeout;

	/* Check if we are longest timeout */
	if (timeout >= _ST_SLEEPQMAX) {
		ST_APPEND_LINK(&thread->links, &_ST_SLEEPQ);
		thread->sleep = timeout - _ST_SLEEPQMAX;
		_ST_SLEEPQMAX = timeout;
	}
	else {
		/* Sort thread into global sleep queue at appropriate point */
		q = _ST_SLEEPQ.next;

		/* Now scan the list for where to insert this entry */
		while (q != &_ST_SLEEPQ) {
			t = _ST_THREAD_PTR(q);
			if (sleep < t->sleep) {
				/* Found sleeper to insert in front of */
				break;
			}
			sleep -= t->sleep;
			q = q->next;
		}
		thread->sleep = sleep;
		ST_INSERT_BEFORE(&thread->links, q);

		/* Subtract our sleep time from the sleeper that follows us */
		ST_ASSERT(thread->links.next != &_ST_SLEEPQ);
		t = _ST_THREAD_PTR(thread->links.next);
		ST_ASSERT(_ST_THREAD_PTR(t->links.prev) == thread);
		t->sleep -= sleep;
	}

	thread->flags |= _ST_FL_ON_SLEEPQ;
}
Esempio n. 18
0
/*******************************************************************************
* @fn          SensorHdc1080_test
*
* @brief       Humidity sensor self test
*
* @return      true if test passes
*******************************************************************************/
bool SensorHdc1080_test(void)
{
    uint16_t val;

    SENSOR_SELECT();
    SensorI2C_writeReg(HDC1080_REG_MANF_ID, 0, 0);
    SENSOR_DESELECT();

    SENSOR_SELECT();
    SensorI2C_read((uint8_t *)&val, 2);
    SENSOR_DESELECT();


    ST_ASSERT(val == HDC1080_VAL_MANF_ID);
    SENSOR_SELECT();
    SensorI2C_writeReg(HDC1080_REG_DEV_ID, 0, 0);
    SENSOR_DESELECT();



    SENSOR_SELECT();
    SensorI2C_read((uint8_t *)&val, 2);
    SENSOR_DESELECT();
    ST_ASSERT(val == HDC1080_VAL_DEV_ID);

//    // Verify manufacturer ID
//    ST_ASSERT(SensorI2C_readReg(HDC1080_REG_MANF_ID,(uint8_t*)&val,2));
//    val = SWAP(val);
//    ST_ASSERT(val == HDC1080_VAL_MANF_ID);

//    // Verify device ID
//    ST_ASSERT(SensorI2C_readReg(HDC1080_REG_DEV_ID,(uint8_t*)&val,2));
//    val = SWAP(val);
//    ST_ASSERT(val == HDC1080_VAL_DEV_ID);

//    SENSOR_DESELECT();

    return true;
}
Esempio n. 19
0
void _st_vp_check_clock(void)
{
	st_thread_t *thread;
	st_utime_t elapsed, now;

	now = st_utime();
	elapsed = now - _st_this_vp.last_clock;
	_st_this_vp.last_clock = now;

	if (_st_curr_time && now - _st_last_tset > 999000) {
		_st_curr_time = time(NULL);
		_st_last_tset = now;
	}

	while (_ST_SLEEPQ.next != &_ST_SLEEPQ) {
		thread = _ST_THREAD_PTR(_ST_SLEEPQ.next);
		ST_ASSERT(thread->flags & _ST_FL_ON_SLEEPQ);

		if (elapsed < thread->sleep) {
			thread->sleep -= elapsed;
			_ST_SLEEPQMAX -= elapsed;
			break;
		}

		_ST_DEL_SLEEPQ(thread, 1);
		elapsed -= thread->sleep;

		/* If thread is waiting on condition variable, set the time out flag */
		if (thread->state == _ST_ST_COND_WAIT)
			thread->flags |= _ST_FL_TIMEDOUT;

		/* Make thread runnable */
		ST_ASSERT(!(thread->flags & _ST_FL_IDLE_THREAD));
		thread->state = _ST_ST_RUNNABLE;
		_ST_ADD_RUNQ(thread);
	}
}
Esempio n. 20
0
bool StLibrary::load(const StString& thePath) {
    // this is probably some logical error in the code if close() wasn't explicitly called before!
    ST_ASSERT(!isOpened(), "StLibrary::load() - library is already opened!");
    close();
    StString aDinLibExt = StString(ST_DLIB_SUFFIX);
    if(thePath.isEndsWithIgnoreCase(aDinLibExt)) {
        // got the full path?
        myPath = thePath;
        myLibH = DLibLoadFull(myPath);
        if(myLibH == NULL) {
            // try to remove an extension
            myPath = thePath.subString(0, thePath.getLength() - aDinLibExt.getLength());
            myLibH = DLibLoad(myPath);
        }
    } else {
        // got short name?
        myPath = thePath;
        myLibH = DLibLoad(myPath);
    }
    return isOpened();
}
Esempio n. 21
0
void _st_iterate_threads(void)
{
  static _st_thread_t *thread = NULL;
  static jmp_buf orig_jb, save_jb;
  _st_clist_t *q;

  if (!_st_iterate_threads_flag) {
    if (thread) {
      memcpy(thread->context, save_jb, sizeof(jmp_buf));
      MD_LONGJMP(orig_jb, 1);
    }
    return;
  }

  if (thread) {
    memcpy(thread->context, save_jb, sizeof(jmp_buf));
    _st_show_thread_stack(thread, NULL);
  } else {
    if (MD_SETJMP(orig_jb)) {
      _st_iterate_threads_flag = 0;
      thread = NULL;
      _st_show_thread_stack(thread, "Iteration completed");
      return;
    }
    thread = _ST_CURRENT_THREAD();
    _st_show_thread_stack(thread, "Iteration started");
  }

  q = thread->tlink.next;
  if (q == &_ST_THREADQ)
    q = q->next;
  ST_ASSERT(q != &_ST_THREADQ);
  thread = _ST_THREAD_THREADQ_PTR(q);
  if (thread == _ST_CURRENT_THREAD())
    MD_LONGJMP(orig_jb, 1);
  memcpy(save_jb, thread->context, sizeof(jmp_buf));
  MD_LONGJMP(thread->context, 1);
}
Esempio n. 22
0
ST_HIDDEN void _st_poll_dispatch(void)
{
    int timeout, nfd;
    _st_clist_t *q;
    st_utime_t min_timeout;
    _st_pollq_t *pq;
    struct pollfd *pds, *epds, *pollfds;

    /*
     * Build up the array of struct pollfd to wait on.
     * If existing array is not big enough, release it and allocate a new one.
     */
    ST_ASSERT(_ST_POLL_OSFD_CNT >= 0);
    if (_ST_POLL_OSFD_CNT > _ST_POLLFDS_SIZE) {
        free(_ST_POLLFDS);
        _ST_POLLFDS = (struct pollfd *) malloc((_ST_POLL_OSFD_CNT + 10) *
                                               sizeof(struct pollfd));
        ST_ASSERT(_ST_POLLFDS != NULL);
        _ST_POLLFDS_SIZE = _ST_POLL_OSFD_CNT + 10;
    }
    pollfds = _ST_POLLFDS;

    /* Gather all descriptors into one array */
    for (q = _ST_IOQ.next; q != &_ST_IOQ; q = q->next) {
        pq = _ST_POLLQUEUE_PTR(q);
        memcpy(pollfds, pq->pds, sizeof(struct pollfd) * pq->npds);
        pollfds += pq->npds;
    }
    ST_ASSERT(pollfds <= _ST_POLLFDS + _ST_POLLFDS_SIZE);

    if (_ST_SLEEPQ == NULL) {
        timeout = -1;
    } else {
        min_timeout = (_ST_SLEEPQ->due <= _ST_LAST_CLOCK) ? 0 :
            (_ST_SLEEPQ->due - _ST_LAST_CLOCK);
        timeout = (int) (min_timeout / 1000);
    }

    /* Check for I/O operations */
    nfd = poll(_ST_POLLFDS, _ST_POLL_OSFD_CNT, timeout);

    /* Notify threads that are associated with the selected descriptors */
    if (nfd > 0) {
        pollfds = _ST_POLLFDS;
        for (q = _ST_IOQ.next; q != &_ST_IOQ; q = q->next) {
            pq = _ST_POLLQUEUE_PTR(q);
            epds = pollfds + pq->npds;
            for (pds = pollfds; pds < epds; pds++) {
                if (pds->revents)
                    break;
            }
            if (pds < epds) {
                memcpy(pq->pds, pollfds, sizeof(struct pollfd) * pq->npds);
                ST_REMOVE_LINK(&pq->links);
                pq->on_ioq = 0;

                if (pq->thread->flags & _ST_FL_ON_SLEEPQ)
                    _ST_DEL_SLEEPQ(pq->thread);
                pq->thread->state = _ST_ST_RUNNABLE;
                _ST_ADD_RUNQ(pq->thread);

                _ST_POLL_OSFD_CNT -= pq->npds;
                ST_ASSERT(_ST_POLL_OSFD_CNT >= 0);
            }
            pollfds = epds;
        }
    }
}
Esempio n. 23
0
/**************************************************************************************************
 * @fn          HalIRTempTest
 *
 * @brief       Run a sensor self-test
 *
 * @return      TRUE if passed, FALSE if failed
 **************************************************************************************************/
bool HalIRTempTest(void)
{
  uint16 val;

  // Select this sensor on the I2C bus
  HalIRTempSelect();

  // Check manufacturer ID
  ST_ASSERT(HalSensorReadReg(TMP006_REG_MANF_ID, (uint8 *)&val, IRTEMP_REG_LEN));
  val = (LO_UINT16(val) << 8) | HI_UINT16(val);
  ST_ASSERT(val == TMP006_VAL_MANF_ID);

  // Reset sensor
  ST_ASSERT(HalSensorWriteReg(TMP006_REG_ADDR_CONFIG, configSensorReset, IRTEMP_REG_LEN));

  // Check config register (reset)
  ST_ASSERT(HalSensorReadReg(TMP006_REG_ADDR_CONFIG, (uint8 *)&val, IRTEMP_REG_LEN));
  val = ((LO_UINT16(val) << 8) | HI_UINT16(val));
  ST_ASSERT(val == TMP006_VAL_CONFIG_RESET);

  // Turn sensor off
  ST_ASSERT(HalSensorWriteReg(TMP006_REG_ADDR_CONFIG, configSensorOff,IRTEMP_REG_LEN));

  // Check config register (off)
  ST_ASSERT(HalSensorReadReg(TMP006_REG_ADDR_CONFIG, (uint8 *)&val, IRTEMP_REG_LEN));
  val = ((LO_UINT16(val) << 8) | HI_UINT16(val));
  ST_ASSERT(val == TMP006_VAL_CONFIG_OFF);

  // Turn sensor on
  ST_ASSERT(HalSensorWriteReg(TMP006_REG_ADDR_CONFIG, configSensorOn, IRTEMP_REG_LEN));

  // Check config register (on)
  ST_ASSERT(HalSensorReadReg(TMP006_REG_ADDR_CONFIG, (uint8 *)&val, IRTEMP_REG_LEN));
  val = ((LO_UINT16(val) << 8) | HI_UINT16(val));
  ST_ASSERT(val == TMP006_VAL_CONFIG_ON);

  // Turn sensor off
  ST_ASSERT(HalSensorWriteReg(TMP006_REG_ADDR_CONFIG, configSensorOff, IRTEMP_REG_LEN));

  return TRUE;
}
Esempio n. 24
0
StGLFontEntry::~StGLFontEntry() {
    ST_ASSERT(myTextures.isEmpty(), "~StGLFontEntry() with unreleased GL resources");
}
Esempio n. 25
0
StGLProgram::~StGLProgram() {
    ST_ASSERT(!isValid(), "~StGLProgram with unreleased GL resources");
}
Esempio n. 26
0
/* ARGSUSED */
ST_HIDDEN void _st_poll_pollset_del(struct pollfd *pds, int npds)
{
    _ST_POLL_OSFD_CNT -= npds;
    ST_ASSERT(_ST_POLL_OSFD_CNT >= 0);
}