亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mcled.cpp

?? LED driver example
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include "mcled.h"
MCLed::MCLed() {
	pthread_mutexattr_t mattr;
	ShowHour=-1;
	ShowMin=-1;
	ShowSec=-1;
	FirstShowTime=false;
	pthread_mutexattr_init(&mattr);
	pthread_mutex_init(&lock,&mattr);
}
MCLed::~MCLed() {
	close(fd);
	fclose(fp);
}
void MCLed::Log(char *text) {
	struct timeval tv;
	struct timezone tz;
	gettimeofday(&tv,&tz);
	fprintf(fp,"%ds%03dms::%s\n",tv.tv_sec,tv.tv_usec/1000,text);
}
bool MCLed::Usleep(int msec) {
//	usleep(msec);
	struct timeval tt;
	tt.tv_sec=0;
	tt.tv_usec=msec;
	pthread_mutex_lock(&lock);
	select(0,NULL,NULL,NULL,&tt);
	pthread_mutex_unlock(&lock);
	return true;
}
bool MCLed::Open() {
	fp=fopen("./vfd.log","a");
	fd=open("/dev/ttyS1",O_RDWR);
	if (fd<0) {
		return false;
	}
	tcgetattr(fd,&term);
	term.c_lflag &= ~(ECHO|ICANON|IEXTEN|ISIG);
	term.c_iflag &= ~(BRKINT|ICRNL|INPCK|ISTRIP|IXON);
	term.c_cflag &= ~(CSIZE|PARENB);
	term.c_cflag |= CS8;
	term.c_oflag &= ~(OPOST);
	term.c_cc[VMIN]=1;
	term.c_cc[VTIME]=0;
	if (tcsetattr(fd,TCSANOW,&term)<0)
		return false;
//	SetMode(STA_MODE);
//	Clear();
	return true;
}
bool MCLed::Clear() {
	int i;
	unsigned char command;
	unsigned char comm[5];
	char tmp[1024];
	FirstShowTime=false;
	comm[0]=0xa0;
	comm[1]=0x04;
	comm[2]=0x05;
	comm[3]=0x80;
	if (write(fd,comm,4)<0) {
		return false;
	}
	sprintf(tmp,"Clear:command=%02xh %02xh %02xh %02xh",comm[0],comm[1],comm[2],comm[3]);
	Log(tmp);
	command=0x18;
	if (!HideIcon(1,0x81,&command))
		return false;
	if (!HideIcon(1,0x8b,&command))
		return false;
//	for (i=0x81;i<=0x8b;i++)
//		if (!HideIcon(1,i,&command))
//			return false;
	return true;
}

bool MCLed::HideIcon(unsigned char len,unsigned char section,unsigned char *data) {
	unsigned char *command;
	char tmp[1024];
	int i;
	command=(unsigned char *)malloc((len+5));
	command[0]=0xa0;
	command[1]=0x04;
	command[2]=0x05;
	command[3]=0x80+len+1;
	command[4]=section;
	for (i=0;i<len;i++) {
		command[5+i]=data[i];
	}
	Usleep(DELAY);
	if (write(fd,command,(len+5))<0) {
		free(command);
		return false;
	}
	switch (len) {
		case 0:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4]);
			break;
		case 1:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5]);
			break;
		case 2:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6]);
			break;
		case 3:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7]);
			break;
		case 7:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7],command[8],command[9],command[10],command[11]);
			break;
		default:
			sprintf(tmp,"HideIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh len=%d",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7],len);
			break;
	}
	Log(tmp);
	free(command);
	return true;
}
bool MCLed::ShowIcon(unsigned char len,unsigned char section,unsigned char *data) {
	unsigned char *command;
	char tmp[1024];
	int i;
	command=(unsigned char *)malloc((len+5));
	command[0]=0xa0;
	command[1]=0x04;
	command[2]=0x00;
	command[3]=0x80+len+1;
	command[4]=section;
	for (i=0;i<len;i++) {
		command[5+i]=data[i];
	}
	Usleep(DELAY);
	if (write(fd,command,(len+5))<0) {
		free(command);
		return false;
	}
	switch (len) {
		case 0:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4]);
			break;
		case 1:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5]);
			break;
		case 2:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6]);
			break;
		case 3:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7]);
			break;
		case 7:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7],command[8],command[9],command[10],command[11]);
			break;
		default:
			sprintf(tmp,"ShowIcon:command=%02xh %02xh %02xh %02xh %02xh %02xh %02xh %02xh len=%d",command[0],command[1],command[2],command[3],command[4],command[5],command[6],command[7],len);
			break;
	}
	Log(tmp);
	free(command);
	return true;
}
bool MCLed::ShowAscii(unsigned char section,char data) {
	unsigned char command[6];
	char tmp[1024];
	command[0]=0xa0;
	command[1]=0x04;
	command[2]=0x01;
	command[3]=0x82;
	command[4]=section;
	command[5]=(unsigned char)data;
	Usleep(DELAY);
	if (write(fd,command,6)<0)
		return false;
	else {
		sprintf(tmp,"ShowAscii:command=%02xh %02xh %02xh %02xh %02xh %02xh",command[0],command[1],command[2],command[3],command[4],command[5]);
		Log(tmp);
		return true;
	}
}
bool MCLed::SetPCMode() {
	unsigned char command[5];
	command[0]=0xa0;
	command[1]=0x00;
	command[2]=0x63;
	command[3]=0x81;
	command[4]=0x01;
	Usleep(DELAY);
	if (write(fd,command,5)<0)
		return false;
	else {
		Log("SetPCMode");
		return true;
	}
}
bool MCLed::SetMode(unsigned char mode) {
	unsigned char command[5];
	char tmp[1024];
	command[0]=0xa0;
	command[1]=0x00;
	command[2]=0x31;
	command[3]=0x81;
	command[4]=mode;
	Usleep(DELAY);
	if (write(fd,command,5)<0)
		return false;
	else {
		sprintf(tmp,"SetMode %02xh",mode);
		Log(tmp);
		return true;
	}
}
bool MCLed::ShowPlay() {
	if (!ShowPlayStatus(ST_PLAY))
		return false;
	else
		return true;
}
bool MCLed::ShowStop() {
	if (!ShowPlayStatus(ST_STOP))
		return false;
	else
		return true;
}
bool MCLed::ShowPause() {
	if (!ShowPlayStatus(ST_PAUSE))
		return false;
	else
		return true;
}
bool MCLed::ShowFF() {
	if (!ShowPlayStatus(ST_FF))
		return false;
	else
		return true;
}
bool MCLed::ShowFB() {
	if (!ShowPlayStatus(ST_FB))
		return false;
	else
		return true;
}
bool MCLed::ShowNC() {
	if (!ShowPlayStatus(ST_NC))
		return false;
	else
		return true;
}
bool MCLed::ShowPC() {
	if (!ShowPlayStatus(ST_PC))
		return false;
	else
		return true;
}
bool MCLed::HidePlayStatus(int status) {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	switch (status) {
		case ST_PLAY:
			tmp[0]=0x10;
			if (!HideIcon(1,0x8b,tmp)) {
				free(tmp);
				return false;
			}
			break;
		case ST_STOP:
			sprintf((char *)tmp,"     ");
			if (!ShowStringLeft((char *)tmp,5)) {
				free(tmp);
				return false;
			}
			break;
		case ST_PAUSE:
			tmp[0]=0x11;
			if (!HideIcon(1,0x8b,tmp)) {
				free(tmp);
				return false;
			}
			break;
		case ST_FF:
			break;
		case ST_FB:
			break;
		case ST_NC:
			break;
		case ST_PC:
			break;
		default:
			return false;
	}
	return true;
}
bool MCLed::ShowPlayStatus(int status) {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	switch (status) {
		case ST_PLAY:
			tmp[0]=0x10;
			if (!ShowIcon(1,0x8b,tmp)) {
				free(tmp);
				return false;
			}
			break;
		case ST_STOP:
			sprintf((char *)tmp," STOP");
			if (!ShowStringLeft((char *)tmp,5)) {
				free(tmp);
				return false;
			}
			break;
		case ST_PAUSE:
			tmp[0]=0x11;
			if (!ShowIcon(1,0x8b,tmp)) {
				free(tmp);
				return false;
			}
			break;
		case ST_FF:
//			sprintf((char *)tmp,"       FF");
//			if (!ShowString((char *)tmp)) {
//				free(tmp);
//				return false;
//			}
			break;
		case ST_FB:
//			sprintf((char *)tmp,"       FB");
//			if (!ShowString((char *)tmp)) {
//				free(tmp);
//				return false;
//			}
			break;
		case ST_NC:
//			sprintf((char *)tmp,"  NEXT CH");
//			if (!ShowString((char *)tmp)) {
//				free(tmp);
//				return false;
//			}
			break;
		case ST_PC:
//			sprintf((char *)tmp,"  PREV CH");
//			if (!ShowString((char *)tmp)) {
//				free(tmp);
//				return false;
//			}
			break;
		default:
			free(tmp);
			return false;
	}
	free(tmp);
	return true;
}
bool MCLed::ShowString(char *data,int begin,int length) {
	unsigned char i;
	unsigned char command[16];
	char tmp[1024];
	if ((begin+length)>9)
		length=9-begin;
	command[0]=0xa0;
	command[1]=0x00;
	command[2]=0x80;
	command[3]=0x80+begin+length;
	for (i=0;i<begin;i++)
		command[4+i]=0x60;
	for (i=begin;i<(begin+length);i++) {
		command[4+i]=data[i-begin];
	}
	Usleep(DELAY);
	if (write(fd,command,(4+begin+length))<0)
		return false;
	else {
		sprintf(tmp,"ShowString:command=%02xh %02xh %02xh %02xh %02xh String=|%s|",command[0],command[1],command[2],command[3],command[4],data);
		Log(tmp);
		return true;
	}
//	for (i=begin;i<(begin+length);i++) {
//		if (!ShowAscii((0x8a-i),data[i-begin]))
//			return false;
//	}
	return true;
}
bool MCLed::ShowStringLeft(char *data,int n) {
	unsigned char i;
	unsigned char command[16];
	char tmp[1024];
	if (n>9)
		n=9;
	command[0]=0xa0;
	command[1]=0x00;
	command[2]=0x80;
	command[3]=0x80+n;
	for (i=0;i<n;i++) {
		command[4+i]=data[i];
	}
	Usleep(DELAY);
	if (write(fd,command,(4+n))<0)
		return false;
	else {
		sprintf(tmp,"ShowStringLeft:command=%02xh %02xh %02xh %02xh String=|%s|",command[0],command[1],command[2],command[3],data);
		Log(tmp);
		return true;
	}
//	for (i=0;i<n;i++) {
//		if (!ShowAscii((0x8a-i),data[i]))
//			return false;
//	}
	return true;
}
bool MCLed::ShowStringRight(char *data,int n) {
	unsigned char i,j;
	unsigned char command[16];
	char tmp[1024];
	if (n>9)
		n=9;
	command[0]=0xa0;
	command[1]=0x00;
	command[2]=0x80;
	command[3]=0x89;
	i=0;
//	for (i=0;i<begin;i++)
	while (i<(9-n)) {
		command[4+i]=0x60;
		i++;
	}
	j=0;
//	for (i=begin;i<(begin+length);i++) {
	while (i<9) {
		command[4+i]=data[j];
		i++;j++;
	}
	Usleep(DELAY);
	if (write(fd,command,13)<0)
		return false;
	else {
		sprintf(tmp,"ShowStringRight:command=%02xh %02xh %02xh %02xh String=|%s|",command[0],command[1],command[2],command[3],data);
		Log(tmp);
		return true;
	}
//	for (i=0;i<n;i++) {
//		if (!ShowAscii((0x82+i),data[n-i-1]))
//			return false;
//	}
	return true;
}
bool MCLed::ShowAC3() {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	tmp[0]=0x01;
	if (!ShowIcon(1,0x8b,tmp)) {
		free(tmp);
		return false;
	}
	free(tmp);
	return true;
}
bool MCLed::ShowDTS() {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	tmp[0]=0x02;
	if (!ShowIcon(1,0x8b,tmp)) {
		free(tmp);
		return false;
	}
	free(tmp);
	return true;
}
bool MCLed::HidePlay() {
	if (!HidePlayStatus(ST_PLAY))
		return false;
	else
		return true;
}
bool MCLed::HideStop() {
	if (!HidePlayStatus(ST_STOP))
		return false;
	else
		return true;
}
bool MCLed::HidePause() {
	if (!HidePlayStatus(ST_PAUSE))
		return false;
	else
		return true;
}
bool MCLed::HideFF() {
	if (!HidePlayStatus(ST_FF))
		return false;
	else
		return true;
}
bool MCLed::HideFB() {
	if (!HidePlayStatus(ST_FB))
		return false;
	else
		return true;
}
bool MCLed::HideNC() {
	if (!HidePlayStatus(ST_NC))
		return false;
	else
		return true;
}
bool MCLed::HidePC() {
	if (!HidePlayStatus(ST_PC))
		return false;
	else
		return true;
}
bool MCLed::HideAC3() {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	tmp[0]=0x01;
	if (!HideIcon(1,0x8b,tmp)) {
		free(tmp);
		return false;
	}
	free(tmp);
	return true;
}
bool MCLed::HideDTS() {
	unsigned char *tmp;
	tmp=(unsigned char *)malloc(17);
	tmp[0]=0x02;
	if (!HideIcon(1,0x8b,tmp)) {
		free(tmp);
		return false;
	}
	free(tmp);
	return true;
}
bool MCLed::HideTrack() {
	unsigned char command;
	char tmp[10];
	sprintf(tmp,"   ");
	if (!ShowStringLeft(tmp,3))
		return false;
	command=0x01;
	if (!HideIcon(1,0x89,&command))
		return false;
	else
		return true;
}
bool MCLed::HideTitle() {
	unsigned char command;
	char tmp[10];
	sprintf(tmp,"   ");
	if (!ShowStringLeft(tmp,3))
		return false;
	command=0x01;
	if (!HideIcon(1,0x8a,&command))
		return false;
	else
		return true;
}
bool MCLed::HideChapter() {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文字幕在线观看| 国产精品麻豆网站| 国产福利一区二区| 亚洲一级不卡视频| 国产日本欧美一区二区| 欧美精品在欧美一区二区少妇| 国产精品一区二区黑丝| 日日夜夜精品视频免费| 亚洲欧洲av另类| 久久久久久久久免费| 欧美久久一区二区| 色94色欧美sute亚洲线路一ni| 国内精品写真在线观看| 午夜伦欧美伦电影理论片| 亚洲欧洲日韩一区二区三区| 亚洲精品在线免费观看视频| 欧美群妇大交群的观看方式| 99久久精品免费看国产| 国产一区二区三区四区五区美女| 丝瓜av网站精品一区二区 | 一区二区三区视频在线观看| 久久精品亚洲麻豆av一区二区 | 国产欧美日本一区视频| 欧美一区二区精品| 欧美三级中文字幕在线观看| 91在线高清观看| 成人精品视频一区| 国产成人8x视频一区二区| 国内外成人在线| 美国十次了思思久久精品导航| 性欧美疯狂xxxxbbbb| 一区二区免费在线播放| 亚洲黄色小说网站| 亚洲女同一区二区| 日韩美女视频一区二区 | 久久午夜国产精品| 欧美不卡一区二区| 日韩久久免费av| 日韩欧美黄色影院| 精品美女被调教视频大全网站| 制服.丝袜.亚洲.另类.中文| 在线不卡欧美精品一区二区三区| 欧美私模裸体表演在线观看| 欧美日韩精品电影| 在线成人小视频| 日韩西西人体444www| 精品日产卡一卡二卡麻豆| 欧美videos中文字幕| 精品av久久707| 国产清纯白嫩初高生在线观看91 | 在线免费精品视频| 欧美午夜宅男影院| 337p亚洲精品色噜噜狠狠| 日韩一级大片在线观看| 欧美精品一区二区蜜臀亚洲| 久久久91精品国产一区二区三区| 欧美国产日韩亚洲一区| 亚洲美女屁股眼交| 日韩中文字幕麻豆| 国产在线精品一区二区| av电影在线观看不卡| 在线观看三级视频欧美| 日韩一区二区三区四区五区六区 | 国产日产欧美一区二区三区| 中文字幕欧美日本乱码一线二线| 亚洲桃色在线一区| 亚洲第一福利视频在线| 紧缚奴在线一区二区三区| 国产成人精品免费视频网站| 972aa.com艺术欧美| 欧美人成免费网站| 国产欧美精品一区二区色综合朱莉| 国产精品欧美一级免费| 亚洲国产欧美另类丝袜| 日韩av不卡一区二区| 国产剧情一区在线| 91久久奴性调教| 欧美大片在线观看一区| 亚洲欧美一区二区在线观看| 亚洲一区二区三区四区五区黄| 青青草视频一区| 成人国产亚洲欧美成人综合网| 色域天天综合网| 日韩欧美国产小视频| 日本一区二区在线不卡| 夜夜嗨av一区二区三区中文字幕| 日本vs亚洲vs韩国一区三区二区| 麻豆精品国产传媒mv男同| 99在线精品一区二区三区| 欧美日韩国产中文| 欧美国产成人精品| 日韩va亚洲va欧美va久久| 成人综合在线视频| 欧美一区二区在线不卡| 国产校园另类小说区| 亚洲午夜视频在线观看| 国产69精品久久久久毛片| 欧美人xxxx| 最近日韩中文字幕| 国产综合色产在线精品| 91啦中文在线观看| 久久亚洲一区二区三区明星换脸| 亚洲在线视频免费观看| 国产成人精品影院| 91麻豆精品国产综合久久久久久| 国产精品第13页| 国内精品在线播放| 91精品国产高清一区二区三区蜜臀| 国产精品久久久久久久浪潮网站| 青青草国产成人99久久| 欧美丝袜丝nylons| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久精品国产久精国产爱| 欧美在线视频全部完| 亚洲欧洲性图库| 国产精品18久久久久久久久久久久| 欧美精品一二三区| 亚洲国产精品欧美一二99| 99久久婷婷国产综合精品| 国产午夜精品一区二区| 久久精品国产网站| 欧美一级夜夜爽| 三级欧美在线一区| 欧美男生操女生| 亚洲国产视频一区二区| 色噜噜狠狠成人网p站| 国产精品看片你懂得| 国产98色在线|日韩| 久久这里只有精品6| 久久er精品视频| 日韩精品中文字幕在线不卡尤物| 亚洲成人免费在线观看| 欧美四级电影在线观看| 亚洲国产视频a| 欧美群妇大交群中文字幕| 亚洲国产日韩精品| 欧美区一区二区三区| 三级欧美韩日大片在线看| 91精品婷婷国产综合久久性色 | 日韩精品成人一区二区在线| 欧美性受xxxx黑人xyx| 亚洲成人av免费| 欧美日韩aaa| 日本不卡中文字幕| 欧美精品一区二区三区四区 | www.亚洲人| 亚洲视频你懂的| 欧美色欧美亚洲另类二区| 亚洲国产精品麻豆| 日韩午夜在线观看| 国产高清不卡二三区| 国产精品久久久一本精品| 91视频在线看| 亚洲高清免费观看| 日韩精品资源二区在线| 经典三级视频一区| 国产精品灌醉下药二区| 日本韩国欧美国产| 日本成人在线电影网| 久久先锋影音av| 色综合久久久久网| 日韩激情在线观看| 国产午夜亚洲精品理论片色戒| 成人免费看视频| 玉米视频成人免费看| 日韩视频在线观看一区二区| 久久成人久久爱| 国产精品久久久久9999吃药| 在线区一区二视频| 国内外成人在线视频| 日韩伦理av电影| 91精品国产综合久久精品图片 | 8x8x8国产精品| 国产一区二区剧情av在线| 日韩一区在线播放| 欧美一区二区精品久久911| 丁香婷婷深情五月亚洲| 亚洲电影一区二区| 久久久久久免费网| 欧美日韩一级黄| 懂色av中文一区二区三区| 亚洲成人动漫精品| 国产日韩欧美一区二区三区乱码| 在线精品观看国产| 在线观看免费成人| 国产一区二区成人久久免费影院| 亚洲日本中文字幕区| 欧美大胆一级视频| 91麻豆成人久久精品二区三区| 蜜桃av一区二区三区| 亚洲黄色性网站| 国产拍欧美日韩视频二区| 欧美精品亚洲二区| 99久久99久久免费精品蜜臀| 久久 天天综合| 亚洲成人精品影院| 亚洲少妇30p| 国产人久久人人人人爽| 日韩一区二区三区在线观看| 在线观看亚洲精品视频|