Ejemplo n.º 1
0
unsigned char dispMenu(void) {
	menuItem* tempMenu,*tempMenu2;

	LCD_CMD (1);//clrscr
	//delay=10000; while (delay--){}
	LCD_CMD (1);//clrscr
	LCD_CMD (1);//clrscr
	LCD_CMD (1);//clrscr
	// первая строка - заголовок. Или пункт меню верхнего уровня
	//delay=10000; while (delay--){}
	LCD_GOTO (1,0);
	tempMenu = selectedMenuItem->Parent;
	if ((void*)tempMenu == (void*)&NULL_ENTRY)
	{ // мы на верхнем уровне
		LCD_STRING ("MENU:");
	}

	else
	{
		 LCD_STRING ((char *)tempMenu->Text);
	}

	//lcd_clrscr(2);
	//
	LCD_GOTO (2,5);
	tempMenu2=selectedMenuItem->Previous;
	LCD_STRING ((char *)tempMenu2->Text);

	LCD_GOTO (3,4);
	LCD_PUTCHAR ('>');

	LCD_GOTO (3,5);
	LCD_STRING ((char *)selectedMenuItem->Text);
	LCD_GOTO (4,5);
	tempMenu2=selectedMenuItem->Next;
	LCD_STRING ((char *)tempMenu2->Text);

	return (1);
}
ssize_t lcd_write(struct file *filp, const char __user *user_buf, size_t count,
                loff_t *f_pos)
{

	if (count > 16) 
		count = 16;

	copy_from_user(kernel_buf,user_buf,count);

	kernel_buf[count-1]='\0';
	LCD_STRING(kernel_buf);

	printk(KERN_INFO "lcd_couscous: write %s \n",kernel_buf);
	
        return count;
}