Пример #1
0
int CGpio::GPIOReadFd(int fd)
{
	int bytecount = -1;
	char value_str[GPIO_MAX_VALUE_SIZE];

	if (fd == -1)
		return -1;

	if (lseek(fd, 0, SEEK_SET) == -1)
		return -1;

	bytecount = read(fd, value_str, GPIO_MAX_VALUE_SIZE);

	return(GetReadResult(bytecount, &value_str[0]));
}
Пример #2
0
unsigned MFMediaIOEx::Read(void* pb,unsigned size)
{
	if (!CreateEvents())
		return 0;

	_dwReadOKSize = 0;
	_blockState = true;
	HRESULT hr = _pStream->BeginRead((BYTE*)pb,size,this,nullptr);
	if (FAILED(hr))
	{
		_blockState = false;
		return 0;
	}
	auto result = GetReadResult();
	_blockState = false;

	if (result != ReadOK || _dwReadOKSize == 0)
		return 0;
	return _dwReadOKSize;
}
Пример #3
0
int CGpio::GPIORead(int gpio_pin, const char *param)
{
	char path[GPIO_MAX_PATH];
	char value_str[GPIO_MAX_VALUE_SIZE];
	int fd;
	int bytecount = -1;

	snprintf(path, GPIO_MAX_PATH, "%s%d/%s", GPIO_PATH, gpio_pin, param);
	fd = open(path, O_RDONLY);

	if (fd == -1)
		return -1;

	bytecount = read(fd, value_str, GPIO_MAX_VALUE_SIZE);
	close(fd);

	if (-1 == bytecount)
	{
		close(fd);
		return -1;
	}

	return(GetReadResult(bytecount, &value_str[0]));
}