Bueno gracias a todos por ayudar, al final yendo de fuera hacia dentro descubri la raiz del problema. El problema era que aunque yo ponia la variable rojo=0 al definirla, en las pruebas para ver como pasar el char a int, antes que nocturno me dijera el metodo, deje perdida una linea de codigo que me modificaba el valor de la variable rojo siendo distinta de cero.
Por eso que todos los metodo tipo Rojo=Rojo*10+Buffer[0]-48; donde se presuponia que rojo era 0 al principio no funcionaban. Si el metodo que propuso modulay o lo que puso jhf900 donde el valor de la variable rojo no importaba.
GRACIAS A TODOS