ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/truck/DashInterface/DashInterface.cpp
(Generate patch)

Comparing DashInterface/DashInterface.cpp (file contents):
Revision 25 by douglas, 2008-02-09T01:39:22-08:00 vs.
Revision 26 by douglas, 2008-02-23T13:35:09-08:00

# Line 8 | Line 8
8  
9   #include <foreach.hpp>
10   #include <hash.hpp>
11 + #include <regex.hpp>
12  
13   #include <Audacious.hpp>
14   #include <GPS.hpp>
15  
16   #include <sqlite3.h>
17  
18 + #include "Display.hpp"
19 +
20 + bool debug(false);
21 +
22   int main(int argc, char *argv[])
23   {
24 <        try
24 >        std::string device;
25 >
26          {
27 <                enum { Uname, Music, English, Metric, Nautical, Last } mode;
28 <                Audacious audacious;
29 <                GPS::GPS gps;
27 >                Pcre::RegEx devicePath(_B("^-device=(/.+)$"));
28 >                Pcre::RegEx deviceNumber(_B("^-device=([0-9]+)$"));
29 >                Pcre::RegEx deviceName(_B("^-device=(.+)$"));
30  
31 +                for (char **arg = argv + 1; *arg; ++arg)
32                  {
33 <                        gps.Query(_B("o"));
33 >                        Pcre::RegEx::Match match;
34  
35 <                        std::cout << gps.GetLatitude() << std::endl;
35 >                        if (*arg == _B("-debug"))
36 >                                debug = true;
37 >                        else if (match = devicePath(*arg))
38 >                                device = match[1];
39 >                        else if (match = deviceNumber(*arg))
40 >                                device = _B("/dev/cuaU") + match[1];
41 >                        else if (match = deviceName(*arg))
42 >                                device = _B("/dev/") + match[1];
43 >                        else
44 >                                goto usage;
45                  }
46          }
47 +
48 +        if (device.empty())
49 +        {
50 + usage:  std::cout << _B("Usage: ") << argv[0] << _B(" [-debug] [-device=device]") << std::endl;
51 +
52 +                return 2;
53 +        }
54 +
55 +        try
56 +        {
57 +                //enum Mode { Uname, Music, English, Metric, Nautical, Last } mode(Uname);
58 +                //Audacious audacious;
59 +                Display display(device);
60 +
61 +                display.Ping("Hello!");
62 +
63 +                /*GPS::GPS gps;
64 +
65 +                gps.Query(_B("o"));
66 +
67 +                std::cout << gps.GetLatitude() << std::endl;*/
68 +        }
69          catch (const std::exception &exception)
70          {
71                  std::cerr << argv[0] << _B(": ") << exception.what() << std::endl;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines