bool CScript::WriteStack(FILE *file) { int nb; nb = 2; fWrite(&nb, sizeof(int), 1, file); fWrite(&m_ipf, sizeof(int), 1, file); fWrite(&m_errMode, sizeof(int), 1, file); return m_botProg->SaveState(file); }
CString CHSCalculate::CreateHtml(const CString& strContent, const InfoIndex* pInfoIndex) { if (pInfoIndex == NULL) { return ""; } // 读格式文件 CString strPath = CGeneralHelper::GetAppPath() + _T("face\\html\\") + HTMLFORMAT_PATH; CFile fRead(strPath, CFile::modeRead); long flen = (long)fRead.GetLength(); if (flen <= 0) { return ""; } char* pBuffer = new char[flen]; fRead.Read(pBuffer,flen); CString strFotmat(pBuffer, flen); delete[] pBuffer; fRead.Close(); ////////////////////////////////////////////////////////////////////////// // 形成html文件 // 标题 strFotmat.Replace(HTML_REPLACE_TITLE, pInfoIndex->m_cTitle); // 正文 // 将换行符替换成<\br> CString strFormatContent(strContent, strContent.GetLength()); strFormatContent.Replace("\r\n", "</br>  "); strFotmat.Replace(HTML_REPLACE_CONTENT, strContent); // 时间 CString strTime; strTime.Format("%04d-%02d-%02d ", pInfoIndex->m_lDate/10000, (pInfoIndex->m_lDate%10000)/100, pInfoIndex->m_lDate%100); strTime.AppendFormat("%02d:%02d:%02d", pInfoIndex->m_lTime/10000, (pInfoIndex->m_lTime%10000)/100, pInfoIndex->m_lTime%100); strFotmat.Replace(HTML_REPLACE_TIME, strTime); // 作者 CString strAuthor = ""; strFotmat.Replace(HTML_REPLACE_AUTHOR, strAuthor); // 来源 CString strOrigin = ""; strFotmat.Replace(HTML_REPLACE_ORIGIN, strOrigin); ////////////////////////////////////////////////////////////////////////// // 写html文件 strPath = CGeneralHelper::GetAppPath() + _T("face\\html\\") + HTMLCONTENT_PATH; CFile fWrite(strPath, CFile::modeCreate | CFile::modeWrite); fWrite.Write(strFotmat.GetBuffer(), strFotmat.GetLength()); fWrite.Close(); return strPath; }
void CDIP_ProgrammingMyClass::MyClass_EnhancementLogTransformation(void) { m_pcLogMap=new UCHAR[256]; for(int i=0;i<256;i++) { m_pcLogMap[i]=255*(log10(i+1)/log10(256)); } for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { m_ppcModifiedImage[i][j] =m_pcLogMap[m_ppcLoadedImage[i][j]]; } } m_pcSaveImage=new UCHAR[m_uiHeight*m_uiWidth]; for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { m_pcSaveImage[i*m_uiWidth+j]=m_ppcModifiedImage[i][j]; } } ofstream fWrite("../LOGTRANSFORMATION.raw", ios::out | ios::binary); fWrite.write((const char*) m_pcSaveImage, m_uiHeight*m_uiWidth); fWrite.close(); m_bLogTransform=FALSE; delete []m_pcLogMap; delete []m_pcSaveImage; }
int irq(int irq, void* data) { uint8_t scancode; uint8_t keycode = 0; int break_code = 0; // Status-Variablen fuer das Behandeln von e0- und e1-Scancodes static int e0_code = 0; // Wird auf 1 gesetzt, sobald e1 gelesen wurde, und auf 2, sobald das erste // Datenbyte gelesen wurde static int e1_code = 0; static uint16_t e1_prev = 0; scancode = inb(0x60); // Um einen Breakcode handelt es sich, wenn das oberste Bit gesetzt ist und // es kein e0 oder e1 fuer einen Extended-scancode ist if ((scancode & 0x80) && (e1_code || (scancode != 0xE1)) && (e0_code || (scancode != 0xE0))) { break_code = 1; scancode &= ~0x80; } if (e0_code) { // Fake shift abfangen und ignorieren if ((scancode == 0x2A) || (scancode == 0x36)) { e0_code = 0; kprintf("E0 ret\n"); return 0; } keycode = translate_scancode(1, scancode); e0_code = 0; } else if (e1_code == 2) { // Fertiger e1-Scancode // Zweiten Scancode in hoeherwertiges Byte packen e1_prev |= ((uint16_t) scancode << 8); keycode = translate_scancode(2, e1_prev); e1_code = 0; } else if (e1_code == 1) { // Erstes Byte fuer e1-Scancode e1_prev = scancode; e1_code++; } else if (scancode == 0xE0) { // Anfang eines e0-Codes e0_code = 1; } else if (scancode == 0xE1) { // Anfang eines e1-Codes e1_code = 1; } else { // Normaler Scancode keycode = translate_scancode(0, scancode); } if(keycode != 0) { while(rpc_check_future(irqFuture)); //Check future before issuing write, cause we reuse same dd page dd->data[0] = keycode; dd->data[1] = break_code; dd->data[2] = 0; dd->length = 2; irqFuture = fWrite("/dev/kbdRaw", dd); kprintf(" >%x:%x< ", keycode, break_code); return 1; } return 0; }
void CDIP_ProgrammingMyClass::MyClass_EnhancementGaussianFilter(void) { UCHAR** ppTemp; //MyClass_Padding(m_ppcLoadedImage); DOUBLE** dGaussianMask; dGaussianMask=(DOUBLE**)malloc(sizeof(DOUBLE*)*m_uiGaussianFilterMaskSize); if(dGaussianMask == 0) { return ; } *dGaussianMask=(DOUBLE*)malloc(sizeof(DOUBLE)*m_uiGaussianFilterMaskSize*m_uiGaussianFilterMaskSize); if((*dGaussianMask) == 0) { free(dGaussianMask); return ; } for(UINT32 i=1;i<m_uiGaussianFilterMaskSize;i++) { dGaussianMask[i]=dGaussianMask[i-1]+m_uiGaussianFilterMaskSize; } double count=0; for(int i=0;i<m_uiGaussianFilterMaskSize;i++) { for(int j=0;j<m_uiGaussianFilterMaskSize;j++) { int tmp=((i-(m_uiGaussianFilterMaskSize/2))*(i-(m_uiGaussianFilterMaskSize/2))+(j-(m_uiGaussianFilterMaskSize/2))*(j-(m_uiGaussianFilterMaskSize/2)))*-1; dGaussianMask[i][j]=pow(exp(1.0),tmp/4); count+=dGaussianMask[i][j]; } } double offset=1/count; count=0; for(int i=0;i<m_uiGaussianFilterMaskSize;i++) { for(int j=0;j<m_uiGaussianFilterMaskSize;j++) { dGaussianMask[i][j]*=offset; count+=dGaussianMask[i][j]; } } m_ppcPaddedImage=MyClass_MemoryAlloc2D(m_uiHeight+m_uiGaussianFilterMaskSize-1, m_uiWidth+m_uiGaussianFilterMaskSize-1); if(m_ppcModifiedImage==NULL) ppTemp=m_ppcLoadedImage; else ppTemp=m_ppcModifiedImage; MyClass_Padding(m_ppcLoadedImage); m_ppcWindow=MyClass_MemoryAlloc2D(m_uiGaussianFilterMaskSize, m_uiGaussianFilterMaskSize); double sum=0; for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { MyClass_Window(i, j); for(int k=0;k<m_uiGaussianFilterMaskSize*m_uiGaussianFilterMaskSize;k++) { sum+=m_ppcWindow[0][k]*dGaussianMask[0][k]; } ppTemp[i][j]=sum; sum=0; } } m_pcSaveImage=new UCHAR[m_uiHeight*m_uiWidth]; for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { m_pcSaveImage[i*m_uiWidth+j]=m_ppcModifiedImage[i][j]; } } char filename[100]="../GaussianFilter_"; char cMasksize[3]=""; itoa(m_uiGaussianFilterMaskSize, cMasksize, 10); strcat(filename, cMasksize); strcat(filename, ".raw"); ofstream fWrite(filename, ios::out | ios::binary); fWrite.write((const char*) m_pcSaveImage, m_uiHeight*m_uiWidth); fWrite.close(); }
void CDIP_ProgrammingMyClass::MyClass_EnhancementMedianFilter(void) { UCHAR** ppTemp; UCHAR** ppMedianMask; int masksize=m_uiMedianFilterMaskSize*m_uiMedianFilterMaskSize; ppMedianMask=MyClass_MemoryAlloc2D(m_uiMedianFilterMaskSize, m_uiMedianFilterMaskSize); m_ppcPaddedImage=MyClass_MemoryAlloc2D(m_uiHeight+m_uiMedianFilterMaskSize-1, m_uiWidth+m_uiMedianFilterMaskSize-1); ppTemp=m_ppcModifiedImage; MyClass_Padding(m_ppcLoadedImage); m_ppcWindow=MyClass_MemoryAlloc2D(m_uiMedianFilterMaskSize, m_uiMedianFilterMaskSize); UCHAR *ucSorted=new UCHAR[masksize]; for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { MyClass_Window(i, j); for(int k=0;k<masksize;k++) { ucSorted[k]=m_ppcWindow[0][k]; } sort(ucSorted, ucSorted+masksize); ppTemp[i][j]=ucSorted[(masksize)>>1]; } } m_pcSaveImage=new UCHAR[m_uiHeight*m_uiWidth]; for(int i=0;i<m_uiHeight;i++) { for(int j=0;j<m_uiWidth;j++) { m_pcSaveImage[i*m_uiWidth+j]=m_ppcModifiedImage[i][j]; } } char filename[100]="../MedianFilter_"; char cMasksize[3]=""; itoa(m_uiMedianFilterMaskSize, cMasksize, 10); strcat(filename, cMasksize); strcat(filename, ".raw"); ofstream fWrite(filename, ios::out | ios::binary); fWrite.write((const char*) m_pcSaveImage, m_uiHeight*m_uiWidth); fWrite.close(); delete []m_pcSaveImage; }