コード例 #1
0
static ZERO_OR_ERROR OW_trees_for_read( char * device, char * property, struct one_wire_query * owq )
{
	// find sensor node
	struct sensor_node * sense_n = Find_External_Sensor( device ) ;
	
	if ( sense_n != NULL ) {
		// found
		// find property node
		struct property_node * property_n = Find_External_Property( sense_n->family, property ) ;
		
		if ( property_n != NULL ) {
			switch ( property_n->et ) {
				case et_none:
					return 0 ;
				case et_internal:
					return -ENOTSUP ;
				case et_script:
					return OW_read_external_script( sense_n, property_n, owq ) ;
				default:
					return -ENOTSUP ;
			}
		}
	}
	return -ENOENT ;
}
コード例 #2
0
ファイル: ow_parsename.c プロジェクト: M-o-a-T/owfs
/* Device is known with serial number */
static enum parse_enum Parse_External_Device( char *filename, struct parsedname *pn)
{
	struct sensor_node * sensor_n = Find_External_Sensor( filename ) ;
	struct family_node * family_n = Find_External_Family( sensor_n->family ) ;
	
	pn->selected_device = &(family_n->dev) ;
	SetKnownBus(Inbound_Control.external->index, pn);
	return parse_prop;
}
コード例 #3
0
ファイル: ow_parsename.c プロジェクト: M-o-a-T/owfs
/* Return -ENOENT if not a valid name
   return 0 if good
   *next points to next segment, or NULL if not filetype
 */
static enum parse_enum Parse_RealDevice(char *filename, enum parse_pass remote_status, struct parsedname *pn)
{
	pn->device_name = find_segment_in_path( filename, pn->path ) ;
	switch ( Parse_SerialNumber(filename,pn->sn) ) {
		case sn_not_sn:
			if ( Find_External_Sensor( filename ) ) {
				return Parse_External_Device( filename, pn ) ;
			} else {
				return Parse_Alias( filename, remote_status, pn) ;
			}
		case sn_valid:
			return Parse_RealDeviceSN( remote_status, pn ) ;
		case sn_invalid:
		default:
			return parse_error ;
	}
}