/[H8]/trunk/test-server/TerminalSocket.cpp
ViewVC logotype

Diff of /trunk/test-server/TerminalSocket.cpp

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

revision 111 by torben, Mon May 28 14:41:33 2007 UTC revision 112 by torben, Mon May 28 16:28:03 2007 UTC
# Line 76  void TerminalSocket::SalesDescriptionPac Line 76  void TerminalSocket::SalesDescriptionPac
76    
77                  //generate reply                  //generate reply
78                  m_buffer[0] = 0x01; //Ack;                  m_buffer[0] = 0x01; //Ack;
79                  m_buffer[1] = tmpprice<<24;                  m_buffer[1] = tmpprice>>24;
80                  m_buffer[2] = tmpprice<<16;                  m_buffer[2] = tmpprice>>16;
81                  m_buffer[3] = tmpprice<<8;                  m_buffer[3] = tmpprice>>8;
82                  m_buffer[4] = tmpprice;                  m_buffer[4] = tmpprice;
83                  m_buffer[5] = litem.item.description.GetLength();                  m_buffer[5] = litem.item.description.GetLength();
84    
# Line 102  void TerminalSocket::SalesDescriptionPac Line 102  void TerminalSocket::SalesDescriptionPac
102  //Id 2  //Id 2
103  void TerminalSocket::RequestTotalPackage()  void TerminalSocket::RequestTotalPackage()
104  {  {
105            m_total = 0;
106          for (unsigned int i=0; i<m_items.size(); i++)          for (unsigned int i=0; i<m_items.size(); i++)
107          {          {
108                  m_total += m_items[i].item.price * m_items[i].count;                  m_total += m_items[i].item.price * m_items[i].count;
# Line 109  void TerminalSocket::RequestTotalPackage Line 110  void TerminalSocket::RequestTotalPackage
110    
111          unsigned tmpprice = (unsigned) m_total*100;          unsigned tmpprice = (unsigned) m_total*100;
112          m_buffer[0] = 0x01; //ack          m_buffer[0] = 0x01; //ack
113          m_buffer[1] = tmpprice<<24;          m_buffer[1] = tmpprice>>24;
114          m_buffer[2] = tmpprice<<16;          m_buffer[2] = tmpprice>>16;
115          m_buffer[3] = tmpprice<<8;          m_buffer[3] = tmpprice>>8;
116          m_buffer[4] = tmpprice;          m_buffer[4] = tmpprice;
117    
118          Send(m_buffer, 5);          Send(m_buffer, 5);
119    
120            m_message.Format("Total requested - returning %.2f", m_total);
121  }  }
122    
123  //Id 3  //Id 3
124  void TerminalSocket::RequestChangePackage()  void TerminalSocket::RequestChangePackage()
125  {  {
126          unsigned amount = m_buffer[1]>>24 + m_buffer[2]>>16 + m_buffer[3]>>8 + m_buffer[4];          unsigned amount = (m_buffer[1]<<24) + (m_buffer[2]<<16) + (m_buffer[3]<<8) + m_buffer[4];
127          unsigned tmpprice = (unsigned) m_total;          unsigned tmpprice = (unsigned) m_total*100;
128          unsigned change = amount - tmpprice;          unsigned change = amount - tmpprice;
129    
130          m_buffer[0] = 0x01; //ack          m_buffer[0] = 0x01; //ack
131          m_buffer[1] = change<<24;          m_buffer[1] = change>>24;
132          m_buffer[2] = change<<16;          m_buffer[2] = change>>16;
133          m_buffer[3] = change<<8;          m_buffer[3] = change>>8;
134          m_buffer[4] = change;          m_buffer[4] = change;
135    
136          Send(m_buffer, 5);          Send(m_buffer, 5);
137    
138            m_message.Format( "Request change (0x03) recieved %.2f -> returning %.2f", amount/100.0, change/100.0);
139  }  }
140    
141  //Id 4  //Id 4
# Line 141  void TerminalSocket::AbortLastPackage() Line 144  void TerminalSocket::AbortLastPackage()
144          char ack = 0x01;          char ack = 0x01;
145          m_items.pop_back();          m_items.pop_back();
146          Send(&ack,1);          Send(&ack,1);
147    
148            m_message = "Abort last (0x04) recieved";
149  }  }
150    
151  //Id 5  //Id 5
# Line 149  void TerminalSocket::AbortSessionPackage Line 154  void TerminalSocket::AbortSessionPackage
154          char ack = 0x01;          char ack = 0x01;
155          m_items.clear();          m_items.clear();
156          Send(&ack,1);          Send(&ack,1);
157    
158            m_message = "Abort session (0x05) recieved";
159  }  }
160    
161  //Id 6  //Id 6
# Line 159  void TerminalSocket::GoodByePackage() Line 166  void TerminalSocket::GoodByePackage()
166          Sleep(1);          Sleep(1);
167          Close();          Close();
168          m_message = "Goodbye (0x06) recieved";          m_message = "Goodbye (0x06) recieved";
169    
170          m_items.clear();          m_items.clear();
171          m_total = 0.0;          m_total = 0.0;
172    
173            m_isOpen = false;
174  }  }
175    
176    
# Line 174  SalesItem TerminalSocket::FetchItemInfo( Line 184  SalesItem TerminalSocket::FetchItemInfo(
184                  item.isOk = true;                  item.isOk = true;
185                  item.barcode = barcode;                  item.barcode = barcode;
186                  item.description = "ĝl";                  item.description = "ĝl";
187                  item.price = 7.65;                  item.price = 7.00;
188          }          }
189          else if (barcode == "1234567000992")          else if (barcode == "1234567000992")
190          {          {

Legend:
Removed from v.111  
changed lines
  Added in v.112

  ViewVC Help
Powered by ViewVC 1.1.20