OpenCPN Partial API docs
Loading...
Searching...
No Matches
comm_drv_n0183.h
1/***************************************************************************
2 *
3 * Project: OpenCPN
4 * Purpose:
5 * Author: David Register, Alec Leamas
6 *
7 ***************************************************************************
8 * Copyright (C) 2022 by David Register, Alec Leamas *
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
24 **************************************************************************/
25#ifndef _COMMDRIVERN0183_H__
26#define _COMMDRIVERN0183_H__
27
28#include <memory>
29#include <string>
30
31#include "comm_driver.h"
32
35public:
37 CommDriverN0183(NavAddr::Bus b, const std::string& s);
38
39 virtual ~CommDriverN0183();
40
41 virtual bool SendMessage(std::shared_ptr<const NavMsg> msg,
42 std::shared_ptr<const NavAddr> addr) override = 0;
43
44 void SetListener(DriverListener& l) override {}
45
46 virtual std::shared_ptr<NavAddr> GetAddress() {
47 return std::make_shared<NavAddr>(NavAddr0183(iface)); }
48
49 void Activate() override;
50};
51
52#endif // guarstring
Common interface for all drivers.
Definition: comm_driver.h:58
const std::string iface
Physical device for 0183, else a unique string.
Definition: comm_driver.h:89
Abstract NMEA0183 drivers common parts.
void SetListener(DriverListener &l) override
Set the entity which will receive incoming data.
void Activate() override
Register driver in the driver Registry.
Interface implemented by transport layer and possible other parties like test code which should handl...
Definition: comm_driver.h:47
NMEA0183 sent/received address, an interface.
Definition: comm_navmsg.h:155