示例#1
0
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]);
		}
	}
}
示例#2
0
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!");
}
示例#3
0
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 */