void CMainFrame::ShowMsgDetail(CString msg) { DJ_U8 Temp[__MAX_PACKET__DATA]; DJ_U8 *pTemp; int k; int devlen; devlen=sizeof(DeviceID_t); m_edit->SetText(msg); pFrm=(CMainFrame *)AfxGetMainWnd(); memset(Temp,0,__MAX_PACKET__DATA); msg.Remove(' '); pTemp=Temp; memcpy((DJ_Void*)Temp,msg,msg.GetLength()); k=msg.GetLength(); StrtoHex(pTemp,&k); ReadPacket rPkt(pTemp,k); ReadEvtDetail rEvtDetail(pTemp,k); ReadAPIDetail rApiDetail(pTemp,k); if(APP_EVT==rPkt.GetPktType()) { int y=0; rEvtDetail.GetString_EvtData(); pFrm->m_InfoDetail->DelAll(); for (int l=0;l<rEvtDetail.m_Submsg.nNUm;l++) { y++; pFrm->m_InfoDetail->InsItem(); pFrm->m_InfoDetail->setRawV(rEvtDetail.m_Submsg.n_MSgSrc[y]); pFrm->m_InfoDetail->setAnlsV(rEvtDetail.m_Submsg.n_MsgAnly[y]); pFrm->m_InfoDetail->setitemdt(rEvtDetail.m_Submsg.n_Msg[y]); } } if(APP_CMD==rPkt.GetPktType()) { int y=0; rApiDetail.GetString_APIData(); pFrm->m_InfoDetail->DelAll(); for (int l=0;l<rApiDetail.m_Submsg.nNUm;l++) { y++; pFrm->m_InfoDetail->InsItem(); pFrm->m_InfoDetail->setRawV(rApiDetail.m_Submsg.n_MSgSrc[y]); pFrm->m_InfoDetail->setAnlsV(rApiDetail.m_Submsg.n_MsgAnly[y]); pFrm->m_InfoDetail->setitemdt(rApiDetail.m_Submsg.n_Msg[y]); } } }
void CMainFrame::OpenFile(CString sFileName) { int nCnt = 0; char buf[__MAX_PACKET__DATA]; CString strMsg; CString Time; int k; DJ_U8 Tempstr[__MAX_PACKET__DATA]; DJ_U8 *pTemp=NULL; g_statusLog.InitPath(sFileName); g_statusLog.MapOpen(CSAStatusLog::OT_READ); if (g_statusLog.m_fMapOpen) { nCnt = pFrm->g_statusLog.ReadFirstLine(buf, sizeof(buf)); pFrm->m_InfoRaw->DelAll(); pFrm->m_InfoDetail->DelAll(); while(nCnt>0) { strMsg = buf; m_read=strMsg.Mid(22); Time=strMsg.Left(19); m_read.Remove(' '); k=m_read.GetLength(); memset(buf,0,sizeof(__MAX_PACKET__DATA)); memset(Tempstr,0,sizeof(__MAX_PACKET__DATA)); strcpy((DJ_S8 *)Tempstr,m_read); pTemp=Tempstr; StrtoHex(pTemp,&k); OnShowRead((DJ_S8 *)pTemp,k,w_Read,Time); nCnt = g_statusLog.ReadNextLine(buf,sizeof(buf)); } g_statusLog.MapClose(); } else AfxMessageBox("Open fail!"); }
int_32 Shell_bootloader_tftp_client(int_32 argc, char_ptr argv[] ) { _ip_address hostaddr; char hostname[MAX_HOSTNAMESIZE]; char_ptr file_ptr; uint_32 tftp_handle, buffer_size,byte_number=0,bytes=0; uchar_ptr buffer_ptr; TFTP_DATA_STRUCT tftp_data; MQX_FILE_PTR fd; int_32 error; boolean print_usage, shorthelp = FALSE; int_32 return_code = SHELL_EXIT_SUCCESS; int_32 i=0,address; print_usage = Shell_check_help_request(argc, argv, &shorthelp ); if (!print_usage) { if ((argc >= 3) && (argc <= 5)) { RTCS_resolve_ip_address( argv[1], &hostaddr, hostname, MAX_HOSTNAMESIZE ); if (!hostaddr) { printf("Unable to resolve host.\n"); return_code = SHELL_EXIT_ERROR; } else { tftp_data.SERVER = hostaddr; tftp_data.FILENAME = argv[2]; tftp_data.FILEMODE = argv[2]; if (argc > 3) { file_ptr = argv[3]; if (argc > 4) { tftp_data.FILEMODE = argv[4]; } else { tftp_data.FILEMODE = argv[2]; } } else { file_ptr = argv[2]; } address = StrtoHex(argv[3]); _image_data[0] = 0x00; printf("\nDownloading file %s from TFTP server: %s [%ld.%ld.%ld.%ld]\n", tftp_data.FILENAME,hostname, IPBYTES(hostaddr)); tftp_handle = (*FT_TFTP->OPEN)( (pointer) &tftp_data ); if ( tftp_handle != RTCS_OK ) { printf("\nError opening file %s\n",tftp_data.FILENAME); return_code = SHELL_EXIT_ERROR; } else { while (! (*FT_TFTP->EOFT)()) { while(1) { buffer_ptr = (*FT_TFTP->READ)( &buffer_size ); if (buffer_ptr != NULL) { for(i=0;i<(buffer_size);i++) { _image_data[i+byte_number]=buffer_ptr[i]; } byte_number += buffer_size; if(byte_number&0x1000) printf("#"); } else { switch (buffer_size) { case (RTCSERR_TFTP_ERROR + 1): printf("\nFile %s not found\n", tftp_data.FILENAME); break; case (RTCSERR_TFTP_ERROR + 2): printf("\nAccess violation\n"); break; case (RTCSERR_TFTP_ERROR + 3): printf("\nDisk full or allocation exceeded\n"); break; case (RTCSERR_TFTP_ERROR + 4): printf("\nIllegal TFTP operation\n"); break; case (RTCSERR_TFTP_ERROR + 5): printf("\nUnknown transfer ID\n"); break; case (RTCSERR_TFTP_ERROR + 6): printf("\nFile already exists\n"); break; case (RTCSERR_TFTP_ERROR + 7): printf("\nNo such user\n"); break; default: if(byte_number !=0) { printf("\nTransfer 0x%x byte success",byte_number); if(MQX_OK == _bootloader_store_image(address, byte_number, _image_data,(uchar_ptr)tftp_data.FILEMODE)) { printf("\nWrite image to table Success\n"); _bootloader_list_image(); } else { printf("\nWrite image to table Fail\n"); } break; } else printf("\nError reading file %s\n", tftp_data.FILENAME); } /* Endswitch */ break; } } } error = (*FT_TFTP->CLOSE)(); } tftp_handle = (*FT_TFTP->OPEN)( (pointer) &tftp_data ); if ( tftp_handle != RTCS_OK ) { printf("\nError opening file %s\n",tftp_data.FILENAME); return_code = SHELL_EXIT_ERROR; } error = (*FT_TFTP->CLOSE)(); } } else { printf("Error, %s invoked with incorrect number of arguments\n", argv[0]); print_usage = TRUE; } } if (print_usage) { if (shorthelp) { printf("%s <host> <source> <add> [<name>]\n", argv[0]); } else { printf("Usage: %s <host> <source> <add> [<name>]\n", argv[0]); printf(" <host> = TFTP server address or name\n"); printf(" <source> = Source file name\n"); printf(" <add> = Start address (Rom address in Linker file) \n"); printf(" [<name>] = Name of image will be stored in table \n"); } } return return_code; } /* Endbody */