/[H7]/branches/linux-serial/server/serialthread.cpp
ViewVC logotype

Diff of /branches/linux-serial/server/serialthread.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 66 by torben, Mon Feb 5 20:34:51 2007 UTC revision 67 by torben, Tue Feb 6 23:37:39 2007 UTC
# Line 1  Line 1 
1  #include <iostream>  #include <iostream>
2    
3    #include "globalstorage.h"
4  #include "serialthread.h"  #include "serialthread.h"
5    
6    
# Line 8  inline void msleep(int s) Line 9  inline void msleep(int s)
9          usleep(s*1000);          usleep(s*1000);
10  }  }
11                    
12  SerialThread::SerialThread(CH7Serial& s, boost::mutex& m)  SerialThread::SerialThread()
13          : mContinue(true), mStopped(true), mSerial(s),          : Thread()
         mWriteMutex(m)  
14  {  {
15  }  }
16                    
 void SerialThread::stop()  
 {  
         mContinue = false;  
 }  
   
 bool SerialThread::stopped()  
 {  
         return mStopped;  
 }  
17    
18  void SerialThread::operator()()  void SerialThread::operator()()
19  {  {
20          const int delay = 5;          const int delay = 5;
21          mStopped = false;          mStopped = false;
22    
23            GlobalStorage* store = GlobalStorage::instance();
24            CH7Serial& serial = store->serialPort;
25    
26          while (mContinue)          while (mContinue)
27          {          {
28                  led3 = mSerial.readTarget(0);                  store->led3 = serial.readTarget(0);
29                  msleep(delay);                  msleep(delay);
30    
31                  led4 = mSerial.readTarget(1);                  store->led4 = serial.readTarget(1);
32                  msleep(delay);                  msleep(delay);
33    
34                  led5 = mSerial.readTarget(2);                  store->led5 = serial.readTarget(2);
35                  msleep(delay);                  msleep(delay);
36    
37                  switch2 = mSerial.readTarget(3);                  store->switch2 = serial.readTarget(3);
38                  msleep(delay);                  msleep(delay);
39    
40                  switch3 = mSerial.readTarget(4);                  store->switch3 = serial.readTarget(4);
41                  msleep(delay);                  msleep(delay);
42    
43                  potmeter = mSerial.readTarget(5);                  store->potmeter = serial.readTarget(5);
44                  msleep(delay);                  msleep(delay);
45    
46                  temp = mSerial.readTarget(6);                  store->temp = serial.readTarget(6);
47                  std::cout << potmeter << std::endl;                  std::cout << store->potmeter << std::endl;
48    
49                    boost::mutex::scoped_lock lock(store->writeMutex);
50            
51                    if (! store->commands.empty() )
52                    {      
53                            WriteCommand cmd = store->commands.front();
54                            store->commands.pop();
55                            serial.writeTarget( cmd.target, cmd.data);
56                    }
57                                    
58                                    
59                  msleep(250);                  msleep(80);
60          }          }
61          mStopped = true;          mStopped = true;
62  }  }

Legend:
Removed from v.66  
changed lines
  Added in v.67

  ViewVC Help
Powered by ViewVC 1.1.20