Exemplo n.º 1
0
void DCCPacketQueue::setup(byte length)
{
  size = length;
  queue = (DCCPacket *)malloc(sizeof(DCCPacket) *size);
  for(int i = 0; i<size; ++i)
  {
    queue[i] = DCCPacket();
  }
}
Exemplo n.º 2
0
void DCCPacketQueue::clear(void)
{
  read_pos = 0;
  write_pos = 0;
  written = 0;
  for(int i = 0; i<size; ++i)
  {
    queue[i] = DCCPacket();
  }
}
Exemplo n.º 3
0
bool DCCTemporalQueue::forget(unsigned int address)
{
  bool found = false;
  for(int i = 0; i < size; ++i)
  {
    if(queue[i].getAddress() == address)
    {
      queue[i] = DCCPacket(); //revert to default value
      age[i] = 255; //mark it as really old.
    }
  }
  --written;
  return found;
}
Exemplo n.º 4
0
bool DCCPacketQueue::forget(uint16_t address, uint8_t address_kind)
{
  bool found = false;
  for(int i = 0; i < size; ++i)
  {
    if( (queue[i].getAddress() == address) && (queue[i].getAddressKind() == address_kind) )
    {
      found = true;
      queue[i] = DCCPacket(); //revert to default value
    }
  }
  --written;
  return found;
}