Ejemplo n.º 1
0
int32_t w1_read_temp_bus(struct w1_bus *bus, unsigned long flags)
{
	int i, class;

	for (i = 0; i < W1_MAX_DEVICES; i++) {
		class = w1_class(bus->devs + i);
		switch(class) {
		case 0x10: case 0x28: case 0x42:
			return w1_read_temp(bus->devs + i, flags);
		default:
			break;
		}
	}
	/* not found */
	return 1l << 31;
}
Ejemplo n.º 2
0
void ReadOwDevices(int bus) {
  struct w1_dev *d;
  int i;
  int tvalue;
  wrpc_w1_bus.detail = bus; // set the portnumber of the onewire controller
  if (w1_scan_bus(&wrpc_w1_bus) > 0) {
    for (i = 0; i < W1_MAX_DEVICES; i++) {
      d = wrpc_w1_bus.devs + i;
        if (d->rom) {
          mprintf("bus,device (%d,%d): 0x%08x%08x ", wrpc_w1_bus.detail, i, (int)(d->rom >> 32), (int)d->rom);
          *(int*)(scu_reg + 0) = (d->rom >> 32);
          *(int*)(scu_reg + 4) = d->rom;
          if ((char)d->rom == 0x42) {
            tvalue = w1_read_temp(d, 0);
            *(int*)(scu_reg + 8) = (tvalue >> 12);
            mprintf("temp: %dC", tvalue >> 16); //show only integer part for debug
          }
          mprintf("\n");
        }
    }