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; }
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 }
//------------------------------------------------------------------ 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); }