abstract sensor class