IO Namespace Reference

Namespaces

 Custom
 
 DMX512
 
 Error
 
 Modbus
 
 RFSwitch
 
 RS485
 

Classes

class  Controller
 A Controller is responsible for serialising requests for a physical bus. More...
 
class  Device
 Handles requests for a specific device; the requests are executed by the relevant controller. More...
 
class  DeviceManager
 
struct  DevNode
 Identifies a device node. More...
 
class  Request
 Request represents a single user request/response over a bus. More...
 
class  Serial
 Wrapper class for the UART driver. More...
 

Typedefs

using DeviceFactoryList = Vector< const Device::Factory * >
 
using ErrorCode = int16_t
 

Enumerations

enum  Direction { Direction::Incoming, Direction::Outgoing, Direction::Idle }
 Some controllers specify a transfer direction. More...
 
enum  DeviceType {
  DeviceType::RS485, DeviceType::Modbus, DeviceType::DMX512, DeviceType::RFSwitch,
  DeviceType::Custom
}
 
enum  Event { Event::XX }
 
enum  Command { Command::XX }
 

Functions

DevNode::State getState (DevNode::States states)
 
ErrorCode setSuccess (JsonObject json)
 
ErrorCode setPending (JsonObject json)
 
ErrorCode setError (JsonObject json, ErrorCode err, const String &text=nullptr, const String &arg=nullptr)
 

Variables

DeviceManager devmgr
 
static constexpr DevNode DevNode_ALL {0xFFFF}
 

Detailed Description

Controller.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Device.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

DeviceManager.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

DeviceType.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

DevNode.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Error.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Event.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Request.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Serial.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Strings.h

Copyright 2022 mikee47 mike@.nosp@m.sill.nosp@m.yhous.nosp@m.e.ne.nosp@m.t

This file is part of the IOControl Library

This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 or later.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see https://www.gnu.org/licenses/.

Typedef Documentation

◆ DeviceFactoryList

using IO::DeviceFactoryList = typedef Vector<const Device::Factory*>

◆ ErrorCode

using IO::ErrorCode = typedef int16_t

Enumeration Type Documentation

◆ Command

enum IO::Command
strong
Enumerator
XX 

◆ DeviceType

enum IO::DeviceType
strong
Enumerator
RS485 
Modbus 
DMX512 
RFSwitch 
Custom 

◆ Direction

enum IO::Direction
strong

Some controllers specify a transfer direction.

Enumerator
Incoming 
Outgoing 
Idle 

◆ Event

enum IO::Event
strong
Enumerator
XX 

Function Documentation

◆ getState()

DevNode::State IO::getState ( DevNode::States  states)

◆ setError()

ErrorCode IO::setError ( JsonObject  json,
ErrorCode  err,
const String text = nullptr,
const String arg = nullptr 
)

◆ setPending()

ErrorCode IO::setPending ( JsonObject  json)

◆ setSuccess()

ErrorCode IO::setSuccess ( JsonObject  json)

Variable Documentation

◆ devmgr

DeviceManager IO::devmgr

◆ DevNode_ALL

constexpr DevNode IO::DevNode_ALL {0xFFFF}
staticconstexpr