‪Black Box
Public Member Functions | Data Fields | Properties | Private Member Functions | Static Private Attributes
BBSensorConnection.BBSensorObjects Class Reference

Public Member Functions

 BBSensorObjects ()
 
byte [] OutgoingMessageToBytes ()
 ‪Converts the outgoing message to bytes More...
 
void CreateOutgoingMessage (string msg)
 ‪Creates a new outgoing message More...
 
void BuildIncomingMessage (int bytesRead)
 ‪Converts the buffer to a string ans stores it More...
 
bool MessageReceived ()
 ‪Determines if the message was fully received More...
 
void ClearIncomingMessage ()
 ‪Clears the current incoming message so that we can start building for the next message More...
 
int IncomingMessageLength ()
 ‪Gets the length of the incoming message More...
 
void Close ()
 ‪Closes the connection More...
 
string GetRemoteEndPoint ()
 
void PrintMessage ()
 ‪Print the details of the current incoming message More...
 

Data Fields

bool move
 

Properties

Socket Socket [get, set]
 
int BufferSize = 256 [get, set]
 
byte [] Buffer [get, set]
 
StringBuilder IncomingMessage [get, set]
 
StringBuilder OutgoingMessage [get, set]
 
string MessageTerminator = "<END>" [get, set]
 
bool isRunning [get, set]
 

Private Member Functions

void parseData (string data)
 

Static Private Attributes

static bool isMovement = true
 
static bool noMovement = false
 
static string presenseData = ""
 
static string location = ""
 
static string status = ""
 
static string temperature = ""
 
static string humidity = ""
 
static string temperatureBuffer = "0.0"
 
static string humidityBuffer = "0.0"
 

Detailed Description

Definition at line 18 of file BBSensorObjects.cs.

Constructor & Destructor Documentation

◆ BBSensorObjects()

BBSensorConnection.BBSensorObjects.BBSensorObjects ( )

Definition at line 75 of file BBSensorObjects.cs.

76  {
77  ‪Buffer = new byte[‪BufferSize];
78  ‪IncomingMessage = new StringBuilder();
79  ‪OutgoingMessage = new StringBuilder();
80  ‪isRunning = true;
81  }

Member Function Documentation

◆ BuildIncomingMessage()

void BBSensorConnection.BBSensorObjects.BuildIncomingMessage ( int  bytesRead)

‪Converts the buffer to a string ans stores it

Definition at line 118 of file BBSensorObjects.cs.

119  {
120  ‪IncomingMessage.Append(Encoding.ASCII.GetString(‪Buffer, 0, bytesRead));
121  //Console.WriteLine(IncomingMessage.Append(Encoding.ASCII.GetString(Buffer, 0, bytesRead)));
122  }

◆ ClearIncomingMessage()

void BBSensorConnection.BBSensorObjects.ClearIncomingMessage ( )

‪Clears the current incoming message so that we can start building for the next message

Definition at line 136 of file BBSensorObjects.cs.

137  {
138  ‪IncomingMessage.Clear();
139  }

◆ Close()

void BBSensorConnection.BBSensorObjects.Close ( )

‪Closes the connection

Definition at line 157 of file BBSensorObjects.cs.

158  {
159  try
160  {
161  ‪Socket.Shutdown(SocketShutdown.Both);
162  ‪Socket.Close();
163  }
164  catch (Exception ex)
165  {
166  ‪BBSensorErrorLog.‪SaveErrorData("PIR Sensor connection already closed " + ex.Message.ToString());
167  }
168  }
‪static void SaveErrorData(string error)
‪Log all the error that occurs in the program

Referenced by BBPresenseSensor.Program.CloseAllSockets(), and BBPresenseSensor.Program.CloseClient().

◆ CreateOutgoingMessage()

void BBSensorConnection.BBSensorObjects.CreateOutgoingMessage ( string  msg)

‪Creates a new outgoing message

Parameters
msg

Definition at line 104 of file BBSensorObjects.cs.

105  {
106  ‪OutgoingMessage.Clear();
107  ‪OutgoingMessage.Append(msg);
109  }

◆ GetRemoteEndPoint()

string BBSensorConnection.BBSensorObjects.GetRemoteEndPoint ( )

Definition at line 170 of file BBSensorObjects.cs.

171  {
172  return ‪Socket.RemoteEndPoint.ToString();
173  }

◆ IncomingMessageLength()

int BBSensorConnection.BBSensorObjects.IncomingMessageLength ( )

‪Gets the length of the incoming message

Returns

Definition at line 145 of file BBSensorObjects.cs.

146  {
147  return ‪IncomingMessage.Length;
148  }

◆ MessageReceived()

bool BBSensorConnection.BBSensorObjects.MessageReceived ( )

‪Determines if the message was fully received

Returns

Definition at line 128 of file BBSensorObjects.cs.

129  {
130  return ‪IncomingMessage.ToString().IndexOf(‪MessageTerminator) > -1;
131  }

◆ OutgoingMessageToBytes()

byte [] BBSensorConnection.BBSensorObjects.OutgoingMessageToBytes ( )

‪Converts the outgoing message to bytes

Returns

Definition at line 91 of file BBSensorObjects.cs.

92  {
93  if (‪OutgoingMessage.ToString().IndexOf(‪MessageTerminator) < 0)
94  {
96  }
97  return Encoding.ASCII.GetBytes(‪OutgoingMessage.ToString());
98  }

◆ parseData()

void BBSensorConnection.BBSensorObjects.parseData ( string  data)
private

Parameters
data

Definition at line 202 of file BBSensorObjects.cs.

203  {
204  try
205  {
206  ‪presenseData = Regex.Replace(data, @"<[^>]+>|&nbsp;", "");
207 
208  int count = 0;
209 
210  string[] words = ‪presenseData.Split(',');
211  foreach (string word in words)
212  {
213  if (count == 0) { ‪status = word; }
214  if (count == 1) { ‪location = word; }
215  if (count == 2) { ‪temperature = word; }
216  if (count == 3) { ‪humidity = word; }
217 
218  count++;
219  }
220 
223  if (‪humidity == "nan") { ‪humidity = ‪humidityBuffer; }
224  else { ‪humidityBuffer = ‪humidity; }
225 
226  // Debug window
227  Console.Write(‪location + "," + ‪status + "," + ‪temperature + "," + ‪humidity + DateTime.Now.ToString(" HH:mm:ss") + "," + DateTime.Now.ToString("yyyy-MM-dd") + Environment.NewLine);
228 
229  // Encrypt data
230  ‪BBSensorDataEncryptor.‪BBSensorDataEncryption.‪EncryptData(‪location + "," + ‪status + "," + ‪temperature + "," + ‪humidity + "," + DateTime.Now.ToString("HH:mm:ss") + "," + DateTime.Now.ToString("yyyy-MM-dd"));
231  }
232  catch (Exception ex)
233  {
234  ‪isRunning = false;
235  ‪BBSensorErrorLog.‪SaveErrorData("PIR Sensor " + ex.Message.ToString());
236  }
237  }
‪static void SaveErrorData(string error)
‪Log all the error that occurs in the program
‪static void EncryptData(string SensorData)
‪This method encrypts the sensor data

Referenced by BBSensorConnection.BBSensorObjects.PrintMessage().

◆ PrintMessage()

void BBSensorConnection.BBSensorObjects.PrintMessage ( )

‪Print the details of the current incoming message

Definition at line 178 of file BBSensorObjects.cs.

179  {
180  if (‪IncomingMessage.ToString().Contains("START") && ‪isMovement)
181  {
182  ‪parseData(‪IncomingMessage.ToString());
183 
184  ‪isMovement = false;
185  ‪noMovement = true;
186  }
187  if (‪IncomingMessage.ToString().Contains("STOP") && ‪noMovement)
188  {
189  ‪parseData(‪IncomingMessage.ToString());
190  ‪isMovement = true;
191  ‪noMovement = false;
192  }
193  }

Field Documentation

◆ humidity

string BBSensorConnection.BBSensorObjects.humidity = ""
staticprivate

Definition at line 43 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ humidityBuffer

string BBSensorConnection.BBSensorObjects.humidityBuffer = "0.0"
staticprivate

Definition at line 49 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ isMovement

bool BBSensorConnection.BBSensorObjects.isMovement = true
staticprivate

Definition at line 23 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.PrintMessage().

◆ location

string BBSensorConnection.BBSensorObjects.location = ""
staticprivate

Definition at line 34 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ move

bool BBSensorConnection.BBSensorObjects.move

Definition at line 25 of file BBSensorObjects.cs.

◆ noMovement

bool BBSensorConnection.BBSensorObjects.noMovement = false
staticprivate

Definition at line 28 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.PrintMessage().

◆ presenseData

string BBSensorConnection.BBSensorObjects.presenseData = ""
staticprivate

Definition at line 31 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ status

string BBSensorConnection.BBSensorObjects.status = ""
staticprivate

Definition at line 37 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ temperature

string BBSensorConnection.BBSensorObjects.temperature = ""
staticprivate

Definition at line 40 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

◆ temperatureBuffer

string BBSensorConnection.BBSensorObjects.temperatureBuffer = "0.0"
staticprivate

Definition at line 46 of file BBSensorObjects.cs.

Referenced by BBSensorConnection.BBSensorObjects.parseData().

Property Documentation

◆ Buffer

byte [] BBSensorConnection.BBSensorObjects.Buffer
getset

◆ BufferSize

int BBSensorConnection.BBSensorObjects.BufferSize = 256
getset

Definition at line 55 of file BBSensorObjects.cs.

55 { get; set; } = 256;

Referenced by BBPresenseSensor.Program.AcceptCallback(), and BBSensorConnection.BBSensorObjects.BBSensorObjects().

◆ IncomingMessage

StringBuilder BBSensorConnection.BBSensorObjects.IncomingMessage
getsetprivate

◆ isRunning

bool BBSensorConnection.BBSensorObjects.isRunning
getset

◆ MessageTerminator

string BBSensorConnection.BBSensorObjects.MessageTerminator = "<END>"
getset

◆ OutgoingMessage

StringBuilder BBSensorConnection.BBSensorObjects.OutgoingMessage
getsetprivate

◆ Socket

Socket BBSensorConnection.BBSensorObjects.Socket
getset

The documentation for this class was generated from the following file: