Beispiel #1
0
void MetaExpanduinoSubdevice::dispatch(uint8_t opcode, Stream& request, Print& response) {
  switch (opcode) {
    
    case EXPANDUINO_CMD_META_VENDOR_NAME: {
      container.getVendorName(response);
      break;
    }
      
    case EXPANDUINO_CMD_META_PRODUCT_NAME: {
      container.getProductName(response);
      break;
    }
     
    case EXPANDUINO_CMD_META_SHORT_NAME: {
      container.getShortName(response);
      break;
    }
    
    case EXPANDUINO_CMD_META_SERIAL_NUMBER: {
      container.getSerialNumber(response);
      break;
    }
    
    case EXPANDUINO_CMD_META_RESET: {
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev) {
          dev->setInterruptionEnabled(false);
          dev->reset();
        }
      } else {
        container.reset();
      }
      break;
    }
        
    case EXPANDUINO_CMD_META_GET_INTERRUPTION: {
      container.readInterruptionData(response);
      break;
    }
    
    case EXPANDUINO_CMD_META_GET_INTERRUPTION_ENABLED: {
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev) {
          response.write(dev->interruptionEnabled);
        }
      }
      break;
    }
    
    case EXPANDUINO_CMD_META_SET_INTERRUPTION_ENABLED: {
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev && request.available()) {
          dev->setInterruptionEnabled(request.read());
        }
      }
      break;
    }
        
    case EXPANDUINO_CMD_META_NUM_SUBDEVICES: {
      response.write(container.getNumSubdevices());
      break;
    }   
      
    case EXPANDUINO_CMD_META_SUBDEVICE_TYPE: {
      uint8_t devType = EXPANDUINO_DEVICE_TYPE_MISSING;
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev) {
          response.write(dev->devType);
        }
      }     
      break;
    }
    
    case EXPANDUINO_CMD_META_SUBDEVICE_NAME: {
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev) {
          dev->getName(response);
        }
      }
      break;
    }
    
    case EXPANDUINO_CMD_META_SUBDEVICE_SHORT_NAME: {
      if (request.available()) {
        ExpanduinoSubdevice* dev = container.getDevice(request.read());
        if (dev) {
          dev->getShortName(response);
        }
      }
      break;
    }
  }
}
 size_t writeTabs() {
   size_t n = 0;
   for (int i = 0; i < level * tabSize; i++) n += sink->write(' ');
   return n;
 }
void DataStream::putChar(char ch) {
    if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) 
        return; 
    _out->write(&ch,1); };
void DataStream::puts(char *s) { 
    if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) 
        return;
    _out->write(s); 
};
Beispiel #5
0
// Allow Arduino's Serial.print() to print BigNumber objects!
size_t BigNumber::printTo(Print& p) const
{
  char *buf = bc_num2str(num_);
  p.write(buf);
  free(buf);
}
Beispiel #6
0
size_t hNibble(Print& p, byte val)
{
    return p.write(val + (val<10 ? '0' : 'A'-10));
}