File: Echo.m

package info (click to toggle)
octave-arduino 0.12.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,616 kB
  • sloc: cpp: 3,221; python: 438; makefile: 152; xml: 22; sh: 1
file content (82 lines) | stat: -rw-r--r-- 2,576 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
## Copyright (C) 2018-2020 John Donoghue <john.donoghue@ieee.org>
## 
## This program 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, either version 3 of the License, or
## (at your option) any later version.
## 
## This program 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 program.  If not, see
## <https://www.gnu.org/licenses/>.

classdef Echo < arduinoio.LibraryBase
  ## -*- texinfo -*- 
  ## @deftypefn {} {} arduinoioaddons.ExampleAddon.Echo
  ## Basic Example matlab/octave code to illustrate creating
  ## a user addon. 
  ##
  ## @seealso{addon}
  ## @end deftypefn
  ##
  ## @subsubheading Properties
  ## @var{Parent} - the parent arduino object.
  ##
  ## @var{Pins} - the pins allocated the addon.
  ##
  ## @subheading Methods
  ## @deftypefn {} {@var{obj} =} Echo(arObj)
  ## Constructor to create Echo addon
  ## @subsubheading Inputs
  ## @var{arObj} - the arduino parent object
  ##
  ## @subsubheading Outputs
  ## @var{obj} - created Echo object
  ## @end deftypefn
  ##
  ## @deftypefn {} {@var{response} = } shout(@var{text})
  ## Send text to arduino and receive back the echoed reply
  ##
  ## @subsubheading Inputs
  ## @var{text} - text to send to arduino
  ##
  ## @subsubheading Outputs
  ## @var{response} - response from the arduino, which should be the same as 
  ## the input text.
  ## @end deftypefn
  
  # commands
  properties(Access = private, Constant = true)
      ECHO_COMMAND = hex2dec('01');
  endproperties   

  properties(Access = protected, Constant = true)
    LibraryName = 'ExampleAddon/Echo';
    DependentLibraries = {};
    ArduinoLibraryHeaderFiles = {};
    CppHeaderFile = fullfile(arduinoio.FilePath(mfilename('fullpath')), 'src', 'Echo.h');
    CppClassName = 'Echo';
  endproperties

  methods
    # constructor
    function obj = Echo(parentObj)
      obj.Parent = parentObj;
      obj.Pins = [];
    endfunction

    # function addon can do
    function out = shout(obj, val)
      cmdID = obj.ECHO_COMMAND;
      inputs = [uint8(val)];
      output = sendCommand(obj.Parent, obj.LibraryName, cmdID, inputs);
      # data is just an echo of what we sent
      out = char(output);
    endfunction
   
  endmethods
endclassdef