| Algorithm 2. Laser Receiver for LCS: |
| Receiver Algorithm: Deciphers the laser pulses back into the original data types. It uses a solar cell to detect the signal and processes the light variations to reconstruct the transmitted information. |
| Input: Laser signals read through the solar cell |
| Output: Output the interpreted data appropriately |
| 1: initialize receivedMessage as an empty string |
| 2: initialize receivedChar as a character |
| 3: while true do |
| 4: receivedChar <- receiveChar() function |
| 5: if receivedChar is a newline character then break the loop |
| 6: receivedMessage <- receivedMessage + receivedChar |
| 7: if receivedMessage starts with a text identifier then do |
| 8: print “Received text: ” + receivedMessage |
| 9: end if |
| 10: else if receivedMessage starts with an audio identifier then do |
| 11: initialize startTime as the current time in milliseconds |
| 12: while the difference between the current time and startTime is less than 10000 ms (10 s) do |
| 13: audioValue <- receiveChar() |
| 14: scaledValue <- map audioValue from range 0-255 to 0-1023 |
| 15: write scaledValue to audioOutPin |
| 16: write 0 to audioOutPin to turn off the speaker |
| 17: end while |
| 18: end else if |
| 19: else if receivedMessage starts with an image identifier then do |
| 20: for i = 0 to 239 (representing each line of the image) do |
| 21: for j = 0 to 319 (representing each pixel in the line) do |
| 22: pixelValue <- receiveChar() |