README.rdoc 7.05 KB
Newer Older
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
1
= Peak
2

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
3
{<img src="https://badge.fury.io/rb/peak.svg" alt="Gem Version" />}[https://badge.fury.io/rb/peak]
4
{<img src="http://img.shields.io/badge/yard-docs-blue.svg" />}[http://www.rubydoc.info/github/Syncleus/peak/master]
5

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
6
Author::  Jeffrey Phillips Freeman, WI2ARD (freemo@gmail.com)
7
Copyright:: Copyright (c) 2016 - present Syncleus, Inc.
8

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
9
Peak is a full suite APRS client and reference implementation for the APEX protocol. APEX is a next generation APRS
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
10
based protocol. It is a full-feature application
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
11
for digipeating, compatible with most AX.25 KISS TNC devices, and utilizing the full APEX stack.
12

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
13
14
15
16
17
18
19
20
21
22
23
For more information on the project please check out {the project's home page}[http://apexprotocol.com/].

Peak is Free and Open-source software under Apache Software License v2

== Installation

Install the application using gem.

    gem install peak

== Running the app
24

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
25
26
Once installed copy the peak.conf.example file over to peak.conf in the /etc directory, then edit the file and replace
it with your details. Next just run the application with the following command.
27

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
28
    peak run
29

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
30
31
32
33
34
35
36
37
There isn't much to the application right now, the application is still pre-release so more features and configuration
options should be added soon. For now the application will display all packets read in and send out a status, id, and
beacon packet every 10 minutes.

This is Free software: Apache License v2

== Development

38
After checking out the repo, run +bin/setup+ to install dependencies. You can also run +bin/console+ for an interactive
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
39
40
prompt that will allow you to experiment.

41
42
To install this gem onto your local machine, run <code>bundle exec rake install</code>. To release a new version, update the
version number in +app_info.rb+, and then run <code>bundle exec rake release</code>, which will create a git tag for the version,
43
push git commits and tags, and push the +.gem+ file to {rubygems.org}[https://rubygems.org].
Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
44

45
46
To run the code without installing issue the following `bundle exec bin/peak test`

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
== Consistent ports

It is important that the ports associated with the TNCs be consistent between boots. To do this first get the info using `lsusb -v`,
for example you might get the following:

```
Bus 001 Device 005: ID 0403:d011 Future Technology Devices International, Ltd SCS Position-Tracker/TNC
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0xd011 SCS Position-Tracker/TNC
  bcdDevice            6.00
  iManufacturer           1 SCS
  iProduct                2 SCS Tracker / DSP TNC
  iSerial                 3 PT5690Y
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x067b Prolific Technology, Inc.
  idProduct          0x2303 PL2303 Serial Port / Mobile Action MA-8910P
  bcdDevice            3.00
  iManufacturer           1 Prolific Technology Inc.
  iProduct                2 USB-Serial Controller
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0027
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
```

Then add the appropriate rules under `/etc/udev/` to ensure they get a special static symlink. For example for the 
above output the udev rule would look as follows.

```
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="ttyUSB-kenwood"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="d011", ATTRS{serial}=="PT5690Y", SYMLINK+="ttyUSB-scs"
```

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
188
== Links
189

Jeffrey Phillips Freeman's avatar
Jeffrey Phillips Freeman committed
190
* {Source on Github}[https://github.com/Syncleus/peak]
191