예제 #1
0
파일: proplist.c 프로젝트: crmafra/wmaker
static char *dataDescription(WMPropList * plist)
{
	const unsigned char *data;
	char *retVal;
	int i, j, length;

	data = WMDataBytes(plist->d.data);
	length = WMGetDataLength(plist->d.data);

	retVal = (char *)wmalloc(2 * length + length / 4 + 3);

	retVal[0] = '<';
	for (i = 0, j = 1; i < length; i++) {
		retVal[j++] = num2char((data[i] >> 4) & 0x0f);
		retVal[j++] = num2char(data[i] & 0x0f);
		if ((i & 0x03) == 3 && i != length - 1) {
			/* if we've just finished a 32-bit int, add a space */
			retVal[j++] = ' ';
		}
	}
	retVal[j++] = '>';
	retVal[j] = '\0';

	return retVal;
}
예제 #2
0
void send_angle(int16_t angle){
//send commanded angle
	uint8_t r1 = 0;
	uint8_t r2 = 0;
	uint8_t r3 = 0;
	uint8_t r4 = 0;

	uartSendByte(UART3, 'R');

	r1 = num2char(0x0F & (uint8_t)angle);
	r2 = num2char(0x0F & ((uint8_t)(angle >> 4)) );
	r3 = num2char(0x0F & ((uint8_t)(angle >> 8)) );
	r4 = num2char(0x0F & ((uint8_t)(angle >> 12)) );
	/*
	uartSendByte(UART1, r4);
	uartSendByte(UART1, r3);
	uartSendByte(UART1, r2);
	uartSendByte(UART1, r1);
	uartSendByte(UART1, '\r');
	uartSendByte(UART1, '\n'); //line feed
	*/
	uartSendByte(UART3, r4);
	uartSendByte(UART3, r3);
	uartSendByte(UART3, r2);
	uartSendByte(UART3, r1);
	uartSendByte(UART3, '\n'); //line feed
}
예제 #3
0
//------------------------------------------------------------------
void toolBitmap()
{
	int i;
	TBADDBITMAP a;
	HDC dc, wdc;
	HGDIOBJ oldBmp, oldF;
	TCHAR c;
	HBRUSH br;
	RECT rc;
	HBITMAP b;
	LOGFONT font;
	const int Nbut1=35, Nbut=Nbut1+Msymbol+1;

	wdc=GetDC(toolbar);
	dc=CreateCompatibleDC(wdc);
	b=CreateCompatibleBitmap(wdc, Nbut*16, 15);
	ReleaseDC(toolbar, wdc);
	oldBmp=SelectObject(dc, b);
	rc.left=0; rc.right=16*Nbut1; rc.bottom=15; rc.top=0;
	FillRect(dc, &rc, GetSysColorBrush(COLOR_BTNFACE));
	SetBkMode(dc, TRANSPARENT);
	SetTextAlign(dc, TA_CENTER);
	memset(&font, 0, sizeof(LOGFONT));
	font.lfHeight=-15;
	_tcscpy(font.lfFaceName, _T("Tahoma"));
	oldF=SelectObject(dc, CreateFontIndirect(&font));
	for(i=0; i<Nbut1; i++){
		c=num2char(i);
		TextOut(dc, 16*i+8, -1, &c, 1);
	}
	DeleteObject(SelectObject(dc, oldF));
	for(; i<Nbut; i++){
		rc.left=i*16;
		rc.right=rc.left+16;
		FillRect(dc, &rc, br=CreateSolidBrush(colors[i-Nbut1]));
		DeleteObject(br);
	}
	SelectObject(dc, oldBmp);
	DeleteDC(dc);

	if(toolBmp){
		TBREPLACEBITMAP rb;
		rb.hInstOld=0;
		rb.nIDOld=(UINT_PTR)toolBmp;
		rb.hInstNew=0;
		rb.nIDNew=(UINT_PTR)b;
		rb.nButtons=Nbut;
		SendMessage(toolbar, TB_REPLACEBITMAP, 0, (LPARAM)&rb);
		DeleteObject(toolBmp);
	}
	else{
		a.hInst=(HINSTANCE)0;
		a.nID=(UINT_PTR)b;
		toolNumIndex= SendMessage(toolbar, TB_ADDBITMAP, Nbut, (LPARAM)&a);
	}
	toolBmp=b;
	InvalidateRect(toolbar, 0, TRUE);
}