uint8_t key manipulation

Hi all, I've been working with this barcode scanner code from this website:

From what I understand, it takes the acsii input from the barcode scanner and outputs it into readable characters to the LCD screen. This part isn't a problem, it all works, but I want to manipulate that code to read that acsii string, match it to a set, and print out a different number to the lcd screen based off of that comparison. My only problem is finding out how to read that key

I've tried setting an if statement as follows:

if(key == (48,50,56,52,48,48,48,48,51,48,48,49,19)
{
key == (49)
}

That key is an actual barcode that I have scanned, I'm trying to convert it to another number before it prints using the (char)key function. This code compiles fine, but it doesn't execute this if statement, it just continues to print the same corresponding acsii-> character translation to: 028400003001 on the lcd screen

Am I just reading the key wrong in the if statement?? Do I need to store it as a variable first?
Any help is much appreciated, thanks!

Here's the actual code:

/*

Portable barcode scanner. Uses USB HID barcode scanner, Arduino Board, USB Host Shield and HD44780-compatible LCD display

The circuit:

  • LCD RS pin to digital pin 7
  • LCD Enable pin to digital pin 6
  • LCD D4 pin to digital pin 5
  • LCD D5 pin to digital pin 4
  • LCD D6 pin to digital pin 3
  • LCD D7 pin to digital pin 2
  • LCD R/W pin to ground
  • 10K resistor:
  • ends to +5V and ground
  • wiper to LCD VO pin (pin 3)

*/

#include <hid.h>
#include <hiduniversal.h>

#include <LiquidCrystal.h>
#include <avr/pgmspace.h>

//#include <avrpins.h>
//#include <max3421e.h>
//#include <usbhost.h>
//#include <usb_ch9.h>
#include <Usb.h>
#include <usbhub.h>
#include <avr/pgmspace.h>
//#include <address.h>
#include <hidboot.h>

//#include <printhex.h>
//#include <message.h>
//#include <hexdump.h>
//#include <parsetools.h>

#define DISPLAY_WIDTH 16

// initialize the LCD library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

USB Usb;
USBHub Hub(&Usb);
HIDUniversal Hid(&Usb);
HIDBoot<HID_PROTOCOL_KEYBOARD> Keyboard(&Usb);

class KbdRptParser : public KeyboardReportParser
{
void PrintKey(uint8_t mod, uint8_t key);
protected:
virtual void OnKeyDown (uint8_t mod, uint8_t key);
virtual void OnKeyPressed(uint8_t key);
};

void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)
{
uint8_t c = OemToAscii(mod, key);

if (c)
OnKeyPressed(c);
}

/* what to do when symbol arrives */
void KbdRptParser::OnKeyPressed(uint8_t key)
{
static uint32_t next_time = 0; //watchdog
static uint8_t current_cursor = 0; //tracks current cursor position

if( millis() > next_time ) {
lcd.clear();
current_cursor = 0;
delay( 5 ); //LCD-specific
lcd.setCursor( 0,0 );
}//if( millis() > next_time ...

next_time = millis() + 200; //reset watchdog

if( current_cursor++ == ( DISPLAY_WIDTH + 1 )) { //switch to second line if cursor outside the screen
lcd.setCursor( 0,1 );
}

Serial.println( (char)key );
lcd.print( (char)key );

};

KbdRptParser Prs;

void setup()
{
Serial.begin( 115200 );
Serial.println("Start");

if (Usb.Init() == -1) {
Serial.println("OSC did not start.");
}

delay( 200 );

Hid.SetReportParser(0, (HIDReportParser*)&Prs);
// set up the LCD's number of columns and rows:
lcd.begin(DISPLAY_WIDTH, 2);
lcd.clear();
lcd.noAutoscroll();
lcd.print("Ready");
delay( 200 );
}

void loop()
{
Usb.Task();
}

You cannot do this:

if(key == (48,50,56,52,48,48,48,48,51,48,48,49,19)
{
key == (49)
}

You must learn about "if" statements.
You must learn that "==" is for testing equality.
You must learn that "=" is for assignment.

This code should look more like

if(key == 48 ||
   key == 50 ||
   key == 56 ||
   key == 52 ||
   key == 51 ||
   key == 49 ||
   key == 19)
{
key = 49 ;
}

but I do not know why 48 shows up so many times or why key is set to 49 if it is already 49.

The variable"key" can hold only a single 8 bit value, so I now understand what the OP is attempting to accomplish and my solution will not work.

The OP may need to learn about arrays of characters and how to compare them using strcmp and strncmp.