void boardtest() { // while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; //TF CheckMode() ; while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; //rst OSTimeDly(100) ; TfMode() ; OSTimeDly(100) ; while(K1 == 0){OSTimeDly(100); } while(K1 == 1){UsbInfoDispose();OSTimeDly(10) ; } //rst CheckMode() ; OSTimeDly(200) ; DspRst() ; while(1){ if(K9 == 0 ){Light_Init(); TOP_W = 0 ; TOP_IR850= 0 ; TOP_IR940 = 0 ; LEFT_W = 0 ; RIGHT_W = 0 ; LEFT_IR850 = 0 ; RIGHT_IR850 = 0 ; BOT_W = 0 ; BOT_IR = 0 ; RIGHT_UV = 0 ; LEFT_UV = 0 ; } if(K2 == 0 ){Light_Init(); TOP_IR850= 0 ;} if(K3 == 0 ){Light_Init(); TOP_IR940 = 0 ; } if(K4 == 0 ){Light_Init(); LEFT_W = 0 ; RIGHT_W = 0 ; } if(K5 == 0 ){Light_Init(); TOP_IR940 = 0 ;TOP_IR850= 0 ; ;} OSTimeDly(1); if(K6 == 0 ){Light_Init(); LEFT_IR850 = 0 ; RIGHT_IR850 = 0 ; } OSTimeDly(1); if(K7 == 0 ){Light_Init(); BOT_W = 0 ;BOT_IR = 0 ;} OSTimeDly(1); if(K8 == 0 ){Light_Init(); RIGHT_UV = 0 ;LEFT_UV = 0 ; } OSTimeDly(1); if(K1 == 0 ){Light_Init();break ;} OSTimeDly(1); OSTimeDly(10); } CheckMode() ; OSTimeDly(300); while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; PhotographOne() ; OSTimeDly(300) ; while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; ViewMode(); OSTimeDly(100) ; while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; //PhotoDelOne() ; Select_Send_LONG(0x24); OSTimeDly(100) ; while(K1 == 0)OSTimeDly(10) ; while(K1 == 1)OSTimeDly(10) ; CheckMode() ; OSTimeDly(100); PccamMode() ; OSTimeDly(300) ; while(K1 == 0)OSTimeDly(10) ; while(K1 == 1){UsbInfoDispose();OSTimeDly(10) ; } CheckMode() ; }
void ArguPriorExposure() { switch(System.Dsp.photo.Flag) { case G_SENCE_DB_UV : Double_UV_On() ; break ; case G_SENCE_WT : Top_W_On() ; break ; case G_SENCE_L_W : Left_W_On() ; break ; case G_SENCE_R_W : Right_IR850_On(); break ; case G_SENCE_B_W : Bot_W_On() ; break ; case G_SENCE_T_IR940 : Top_IR940_On() ; break ; case G_SENCE_T_IR850 : Top_IR850_On() ; break ; case G_SENCE_L_IR : Left_IR850_On() ; break ; case G_SENCE_B_IR : Bot_IR_On() ; break ; case G_SENCE_R_IR : Right_IR850_On(); break ; default :return ; } OSTimeDly(100); // GR_DBG_PRINTF("\n\nArguPriorExposure IN \n\n"); if(System.Dsp.photo.Flag != 0 ) { PhotoArgvToDsp(System.Dsp.photo.Flag); // 矫正 System.Dsp.photo.Flag = 0 ; // GR_DBG_PRINTF("\nPhotoArgvToDsp IN \n\n"); } ModifyInfo() ; CheckMode(); }
FILE* FileSystem::fopen(std::string file, const char* mode) const { if (!CheckFile(file) || !CheckMode(mode)) return NULL; FixSlashes(file); return fs.fopen(file, mode); }
CTreeHandler::CTreeHandler( int srcmode ) { int ret; CTreeElem* rootelem = 0; isfirstAdd2Depth = 1; ret = CheckMode( srcmode ); if( ret ){ DbgOut( "CTreeHandler : constructor : mode error !!!\n" ); mode = 0; return; }else{ mode = srcmode; } depthmax = 0; d2lnum = 0; // depth ごとの CTreeLevel の数 d2l = 0; // depth ごとに CTreeLevel** (2重の表なので注意) rootlevel = new CTreeLevel( this, mode, 0, -1 ); if( !rootlevel ){ DbgOut( "CTreeHandler : constructor : rootlevel alloc error !!!\n" ); return; } DbgOut( "CTreeHandler : constructor : new rootlevel\n" ); // AddTreeにparentが必要なので、ダミーのrootelem をここで作成。 // !!!! rootelem の serialno は必ず 0 !!!! s2e_leng = 0; s2e = 0; rootelem = rootlevel->AddElem( "root elem", 0 ); if( !rootelem ){ DbgOut( "CTreeHandler : constructor : rootlevel->AddElem error !!!\n" ); return; } //ret = UpdateElemIndex( rootelem ); ret = rootelem->SetType( SHDROOT ); if( ret ){ DbgOut( "CTreeHandler : constructor : rootelem SetMem BASE_TYPE error !!!\n" ); _ASSERT( 0 ); return; } curseri = 0; befseri = 0; parseri = 0; curdepth = 0; addtype = ADDT_NONE; //befaddtype = ADDT_NONE; }
static int LatencyRange(lua_State *L) { jack_latency_range_t range; pud_t *pud = pud_check(L, 1); jack_latency_callback_mode_t mode = CheckMode(L, 2); jack_port_get_latency_range(pud->port, mode, &range); lua_pushinteger(L, range.min); lua_pushinteger(L, range.max); return 2; }
static int SetLatencyRange(lua_State *L) { jack_latency_range_t range; pud_t *pud = pud_check(L, 1); jack_latency_callback_mode_t mode = CheckMode(L, 2); range.min = luaL_checkinteger(L, 3); range.max = luaL_checkinteger(L, 4); jack_port_set_latency_range(pud->port, mode, &range); return 0; }
/*================================================================================= * Function : UsbInfoDispose * Description : * Input Para : * Output Para : * Return Value: =================================================================================*/ void UsbInfoDispose() { if(ptr != NULL) { System.Key.NoKeyTime = 0 ; if(System.Dsp.Mode == SLEEP_MODE) // 在USB通信过程中不休眠 { CheckMode(); } ptr(); MCU_Status.Struct_Status=0x01; ptr = NULL ; } return ; }
/* *---------------------------------------------------------------------- * * vmDestroyReal -- * * Called by vmDestroy. * Frees all of the global data structures * * Results: * None * * Side effects: * The MMU is turned off. * *---------------------------------------------------------------------- */ void vmDestroyReal(void) { CheckMode(); USLOSS_MmuDone(); /* * Kill the pagers here. */ /* * Print vm statistics. */ console("vmStats:\n"); console("pages: %d\n", vmStats.pages); console("frames: %d\n", vmStats.frames); console("blocks: %d\n", vmStats.blocks); /* and so on... */ } /* vmDestroyReal */
void InitStart() { // uint8_t i =0 ; ///////////// 数据初始化///////////////////////// SignOutCount = 0 ; System.Key.Value = 0 ; System.Led.Statu = TOP_WHITE_ON ; System.Dsp.Mode = CHECK_MODE; System.Dsp.CheckMode.Zoom = X0 ; System.Dsp.ViewMode.Zoom = X0 ; System.Dsp.TF_Mode.t = 0 ; System.Dsp.PccamMode.ConnectIn = 0 ; System.Dsp.Sensor =SENSOR1 ; // System.Dsp.SD = OUT ; System.Usb.NewUsbStatu = USB_OUT; System.Usb.OldUsbStatu = USB_OUT; System.Usb.UsbStatuLabel= 0 ; System.Dsp.Sensor = C608; System.SleepEnable = 1 ; System.Process_TakePht = 1 ; System.FilterSw = FILTER_W ; // for(i=0;i<46;i++) // { OSTimeDly(20); // } // for(i=0;i<20;i++) { OSTimeDly(500); } // K2_LED=0; Scen_Send(0x60,0x00); //拍照水印 OSTimeDly(20); Scen_Send(0xC1,0x60); //duibidu OSTimeDly(50); Select_Send(0x27); // Scen_Send(0x99,0x04); //像素降低至03等级,共 有4等级 // SetAGC() ; CheckMode(); }
//----------------------------------------------------------------------------- //! 入力チェック //----------------------------------------------------------------------------- bool Controller::GetPadState(PAD_STATE p_state) { XINPUT_STATE state; // コントローラ情報取得用 ZeroMemory( &state, sizeof(XINPUT_STATE) ); // 初期化 DWORD dwResult; // 関数結果判定用 // 情報取得 dwResult = XInputGetState(_controllerNum,&state); if(dwResult == ERROR_SUCCESS){ // 情報がとれたら CheckMode(p_state); // アナログモードかデジタルかチェック // モードによって入力チェック切替 switch(mode){ case ANALOG: // アナログ if(GetAnalogState(state,p_state)){return true;} break; case DIGITAL: // デジタル if(GetDigitalState(state,p_state)){return true;} break; } } return false; }
/* *---------------------------------------------------------------------- * * vmInitReal -- * * Called by vmInit. * Initializes the VM system by configuring the MMU and setting * up the page tables. * * Results: * Address of the VM region. * * Side effects: * The MMU is initialized. * *---------------------------------------------------------------------- */ void * vmInitReal(int mappings, int pages, int frames, int pagers) { int status; int dummy; CheckMode(); status = USLOSS_MmuInit(mappings, pages, frames); if (status != USLOSS_MMU_OK) { USLOSS_Console("vmInitReal: couldn't init MMU, status %d\n", status); abort(); } USLOSS_IntVec[USLOSS_MMU_INT] = FaultHandler; /* * Initialize page tables. */ /* * Create the fault mailbox. */ /* * Fork the pagers. */ /* * Zero out, then initialize, the vmStats structure */ memset((char *) &vmStats, 0, sizeof(VmStats)); vmStats.pages = pages; vmStats.frames = frames; /* * Initialize other vmStats fields. */ return USLOSS_MmuRegion(&dummy); } /* vmInitReal */
int main(int argc, char** argv) { if (argc < 2) { usage: printf( "usage: %s [-b <bonus-file>] <src-file> <tgt-file> <tgt-sha1> <tgt-size> " "[<src-sha1>:<patch> ...]\n" " or %s -c <file> [<sha1> ...]\n" " or %s -s <bytes>\n" " or %s -l\n" "\n" "Filenames may be of the form\n" " MTD:<partition>:<len_1>:<sha1_1>:<len_2>:<sha1_2>:...\n" "to specify reading from or writing to an MTD partition.\n\n", argv[0], argv[0], argv[0], argv[0]); return 2; } int result; if (strncmp(argv[1], "-l", 3) == 0) { result = ShowLicenses(); } else if (strncmp(argv[1], "-c", 3) == 0) { result = CheckMode(argc, argv); } else if (strncmp(argv[1], "-s", 3) == 0) { result = SpaceMode(argc, argv); } else if (strncmp(argv[1], "-t", 3) == 0) { result = TeeUpdateMode(argc, argv); } else { result = PatchMode(argc, argv); } if (result == 2) { goto usage; } return result; }
void USbInCheck() { System.Usb.NewUsbStatu = USB_STATUS ; if(System.Usb.OldUsbStatu != System.Usb.NewUsbStatu) { System.Usb.UsbStatuLabel = 1 ; if(System.Usb.NewUsbStatu == USB_IN) { //插入USB操作 // SHOW_SCREEN(0xE3,"USB READY\n"); } else if(System.Usb.NewUsbStatu == USB_OUT) { //拔出USB操作 // SHOW_SCREEN(0xE3,"USB NOT READY\n"); if((System.Dsp.Mode == PCCAM_MODE)||(System.Dsp.Mode == TF_MODE)) { CheckMode(); } } System.Usb.OldUsbStatu = System.Usb.NewUsbStatu ; OSTimeDly(10); } }
int CEpgScan::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data) { if ((msg == NeutrinoMessages::EVT_TIMER) && (data == rescan_timer)) { INFO("rescan timer in %s mode, scanning %d", standby ? "standby" : "live", scan_in_progress); scanned.clear(); Clear(); g_RCInput->killTimer(rescan_timer); if (CheckMode()) { if (standby) CNeutrinoApp::getInstance()->wakeupFromStandby(); Start(standby); } else { AddTimer(); } return messages_return::handled; } if (!CheckMode()) { int ret = messages_return::handled; if (msg == NeutrinoMessages::EVT_EIT_COMPLETE) scan_in_progress = false; else if (msg == NeutrinoMessages::EVT_BACK_ZAP_COMPLETE) scan_in_progress = true; else ret = messages_return::unhandled; return ret; } CZapitChannel * newchan; if (msg == NeutrinoMessages::EVT_ZAP_COMPLETE) { /* live channel changed, block scan channel change by timer */ scan_in_progress = true; AddTransponders(); INFO("EVT_ZAP_COMPLETE, scan map size: %d\n", scanmap.size()); #if 0 t_channel_id chid = *(t_channel_id *)data; if (IS_WEBTV(chid)) Next(); #endif return messages_return::handled; } else if (msg == NeutrinoMessages::EVT_EIT_COMPLETE) { scan_in_progress = false; t_channel_id chid = *(t_channel_id *)data; newchan = CServiceManager::getInstance()->FindChannel(chid); if (newchan) { scanned.insert(newchan->getTransponderId()); scanmap.erase(newchan->getTransponderId()); } INFO("EIT read complete [" PRINTF_CHANNEL_ID_TYPE "], scan map size: %d", chid, scanmap.size()); Next(); return messages_return::handled; } else if (msg == NeutrinoMessages::EVT_BACK_ZAP_COMPLETE) { scan_in_progress = true; t_channel_id chid = *(t_channel_id *)data; INFO("EVT_BACK_ZAP_COMPLETE [" PRINTF_CHANNEL_ID_TYPE "]", chid); if (next_chid) { newchan = CServiceManager::getInstance()->FindChannel(next_chid); if (newchan) { if(chid) { if (!CRecordManager::getInstance()->RecordingStatus()) { INFO("try to scan [%s]", newchan->getName().c_str()); if (standby && !g_Sectionsd->getIsScanningActive()) g_Sectionsd->setPauseScanning(false); g_Sectionsd->setServiceChanged(newchan->getChannelID(), false, newchan->getRecordDemux()); } } else { INFO("tune failed [%s]", newchan->getName().c_str()); scanmap.erase(newchan->getTransponderId()); Next(); } } } return messages_return::handled; } return messages_return::unhandled; }
bool CEpgScan::Running() { return (CheckMode() && !scanmap.empty()); }
int applypatch(int argc, char** argv) { if (argc < 2) { return 2; } if (strncmp(argv[1], "-l", 3) == 0) { return ShowLicenses(); } if (strncmp(argv[1], "-c", 3) == 0) { return CheckMode(argc, argv); } if (strncmp(argv[1], "-s", 3) == 0) { if (argc != 3) { return 2; } size_t bytes = strtol(argv[2], NULL, 10); if (MakeFreeSpaceOnCache(bytes) < 0) { printf("unable to make %ld bytes available on /cache\n", (long)bytes); return 1; } else { return 0; } } uint8_t target_sha1[SHA_DIGEST_SIZE]; const char* source_filename = argv[1]; const char* target_filename = argv[2]; if (target_filename[0] == '-' && target_filename[1] == '\0') { target_filename = source_filename; } if (ParseSha1(argv[3], target_sha1) != 0) { fprintf(stderr, "failed to parse tgt-sha1 \"%s\"\n", argv[3]); return 1; } unsigned long target_size = strtoul(argv[4], NULL, 0); int num_patches; Patch* patches; if (ParseShaArgs(argc-5, argv+5, &patches, &num_patches) < 0) { return 1; } FileContents copy_file; FileContents source_file; const char* source_patch_filename = NULL; const char* copy_patch_filename = NULL; int made_copy = 0; // We try to load the target file into the source_file object. if (LoadFileContents(target_filename, &source_file) == 0) { if (memcmp(source_file.sha1, target_sha1, SHA_DIGEST_SIZE) == 0) { // The early-exit case: the patch was already applied, this file // has the desired hash, nothing for us to do. fprintf(stderr, "\"%s\" is already target; no patch needed\n", target_filename); return 0; } } if (source_file.data == NULL || (target_filename != source_filename && strcmp(target_filename, source_filename) != 0)) { // Need to load the source file: either we failed to load the // target file, or we did but it's different from the source file. free(source_file.data); LoadFileContents(source_filename, &source_file); } if (source_file.data != NULL) { const Patch* to_use = FindMatchingPatch(source_file.sha1, patches, num_patches); if (to_use != NULL) { source_patch_filename = to_use->patch_filename; } } if (source_patch_filename == NULL) { free(source_file.data); fprintf(stderr, "source file is bad; trying copy\n"); if (LoadFileContents(CACHE_TEMP_SOURCE, ©_file) < 0) { // fail. fprintf(stderr, "failed to read copy file\n"); return 1; } const Patch* to_use = FindMatchingPatch(copy_file.sha1, patches, num_patches); if (to_use != NULL) { copy_patch_filename = to_use->patch_filename; } if (copy_patch_filename == NULL) { // fail. fprintf(stderr, "copy file doesn't match source SHA-1s either\n"); return 1; } } // Is there enough room in the target filesystem to hold the patched // file? if (strncmp(target_filename, "MTD:", 4) == 0) { // If the target is an MTD partition, we're actually going to // write the output to /tmp and then copy it to the partition. // statfs() always returns 0 blocks free for /tmp, so instead // we'll just assume that /tmp has enough space to hold the file. // We still write the original source to cache, in case the MTD // write is interrupted. if (MakeFreeSpaceOnCache(source_file.size) < 0) { fprintf(stderr, "not enough free space on /cache\n"); return 1; } if (SaveFileContents(CACHE_TEMP_SOURCE, source_file) < 0) { fprintf(stderr, "failed to back up source file\n"); return 1; } made_copy = 1; } else { // assume that target_filename (eg "/system/app/Foo.apk") is located // on the same filesystem as its top-level directory ("/system"). // We need something that exists for calling statfs(). char* target_fs = strdup(target_filename); char* slash = strchr(target_fs+1, '/'); if (slash != NULL) { *slash = '\0'; } size_t free_space = FreeSpaceForFile(target_fs); int enough_space = free_space > (target_size * 3 / 2); // 50% margin of error printf("target %ld bytes; free space %ld bytes; enough %d\n", (long)target_size, (long)free_space, enough_space); if (!enough_space && source_patch_filename != NULL) { // Using the original source, but not enough free space. First // copy the source file to cache, then delete it from the original // location. if (strncmp(source_filename, "MTD:", 4) == 0) { // It's impossible to free space on the target filesystem by // deleting the source if the source is an MTD partition. If // we're ever in a state where we need to do this, fail. fprintf(stderr, "not enough free space for target but source is MTD\n"); return 1; } if (MakeFreeSpaceOnCache(source_file.size) < 0) { fprintf(stderr, "not enough free space on /cache\n"); return 1; } if (SaveFileContents(CACHE_TEMP_SOURCE, source_file) < 0) { fprintf(stderr, "failed to back up source file\n"); return 1; } made_copy = 1; unlink(source_filename); size_t free_space = FreeSpaceForFile(target_fs); printf("(now %ld bytes free for target)\n", (long)free_space); } } FileContents* source_to_use; const char* patch_filename; if (source_patch_filename != NULL) { source_to_use = &source_file; patch_filename = source_patch_filename; } else { source_to_use = ©_file; patch_filename = copy_patch_filename; } char* outname = NULL; FILE* output = NULL; MemorySinkInfo msi; SinkFn sink = NULL; void* token = NULL; if (strncmp(target_filename, "MTD:", 4) == 0) { // We store the decoded output in memory. msi.buffer = malloc(target_size); if (msi.buffer == NULL) { fprintf(stderr, "failed to alloc %ld bytes for output\n", (long)target_size); return 1; } msi.pos = 0; msi.size = target_size; sink = MemorySink; token = &msi; } else { // We write the decoded output to "<tgt-file>.patch". outname = (char*)malloc(strlen(target_filename) + 10); strcpy(outname, target_filename); strcat(outname, ".patch"); output = fopen(outname, "wb"); if (output == NULL) { fprintf(stderr, "failed to open output file %s: %s\n", outname, strerror(errno)); return 1; } sink = FileSink; token = output; } #define MAX_HEADER_LENGTH 8 unsigned char header[MAX_HEADER_LENGTH]; FILE* patchf = fopen(patch_filename, "rb"); if (patchf == NULL) { fprintf(stderr, "failed to open patch file %s: %s\n", patch_filename, strerror(errno)); return 1; } int header_bytes_read = fread(header, 1, MAX_HEADER_LENGTH, patchf); fclose(patchf); SHA_CTX ctx; SHA_init(&ctx); if (header_bytes_read >= 4 && header[0] == 0xd6 && header[1] == 0xc3 && header[2] == 0xc4 && header[3] == 0) { // xdelta3 patches begin "VCD" (with the high bits set) followed // by a zero byte (the version number). fprintf(stderr, "error: xdelta3 patches no longer supported\n"); return 1; } else if (header_bytes_read >= 8 && memcmp(header, "BSDIFF40", 8) == 0) { int result = ApplyBSDiffPatch(source_to_use->data, source_to_use->size, patch_filename, 0, sink, token, &ctx); if (result != 0) { fprintf(stderr, "ApplyBSDiffPatch failed\n"); return result; } } else if (header_bytes_read >= 8 && memcmp(header, "IMGDIFF", 7) == 0 && (header[7] == '1' || header[7] == '2')) { int result = ApplyImagePatch(source_to_use->data, source_to_use->size, patch_filename, sink, token, &ctx); if (result != 0) { fprintf(stderr, "ApplyImagePatch failed\n"); return result; } } else { fprintf(stderr, "Unknown patch file format\n"); return 1; } if (output != NULL) { fflush(output); fsync(fileno(output)); fclose(output); } const uint8_t* current_target_sha1 = SHA_final(&ctx); if (memcmp(current_target_sha1, target_sha1, SHA_DIGEST_SIZE) != 0) { fprintf(stderr, "patch did not produce expected sha1\n"); return 1; } if (output == NULL) { // Copy the temp file to the MTD partition. if (WriteToMTDPartition(msi.buffer, msi.pos, target_filename) != 0) { fprintf(stderr, "write of patched data to %s failed\n", target_filename); return 1; } free(msi.buffer); } else { // Give the .patch file the same owner, group, and mode of the // original source file. if (chmod(outname, source_to_use->st.st_mode) != 0) { fprintf(stderr, "chmod of \"%s\" failed: %s\n", outname, strerror(errno)); return 1; } if (chown(outname, source_to_use->st.st_uid, source_to_use->st.st_gid) != 0) { fprintf(stderr, "chown of \"%s\" failed: %s\n", outname, strerror(errno)); return 1; } // Finally, rename the .patch file to replace the target file. if (rename(outname, target_filename) != 0) { fprintf(stderr, "rename of .patch to \"%s\" failed: %s\n", target_filename, strerror(errno)); return 1; } } // If this run of applypatch created the copy, and we're here, we // can delete it. if (made_copy) unlink(CACHE_TEMP_SOURCE); // Success! return 0; }
static void vmDestroy(sysargs *sysargsPtr) { CheckMode(); } /* vmDestroy */
void CmdLineHandle(char* cmdLine) { cmdLine[strlen(cmdLine) - 1] = '\0'; char* temp = strtok(cmdLine," "); //passive if (strcmp(cmdLine,"passive") == 0) { if (strcmp(mode,"off") == 0) { strcpy(mode,"on"); puts("Passive mode on!"); } else { strcpy(mode,"off"); puts("Passive mode off!"); } } //ls else if (strcmp(cmdLine,"ls") == 0) { CheckMode(); memset(buf, 0, sizeof buf); sprintf(buf,"LIST\r\n"); send(cmdSock, buf, strlen(buf), 0); Accept(); memset(buf, 0, sizeof buf); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); memset(buf, 0, sizeof buf); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); memset(buf, 0, sizeof buf); recv(dataSock, buf, BUFSIZ, 0); puts(buf); } //exit else if (strcmp(cmdLine,"exit") == 0) { status = 1; memset(buf, 0, sizeof buf); sprintf(buf,"QUIT\r\n"); send(cmdSock, buf, strlen(buf), 0); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); } //cd else if (strcmp(cmdLine, "cd") == 0) { memset(buf, 0, sizeof buf); char* value = strtok(NULL, " "); if (value != NULL) { sprintf(buf,"CWD %s\r\n", value); send(cmdSock, buf, strlen(buf), 0); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); } } //delete else if (strcmp(cmdLine, "delete") == 0) { memset(buf, 0, sizeof buf); char* value = strtok(NULL, " "); if (value != NULL) { sprintf(buf,"DELE %s\r\n", value); send(cmdSock, buf, strlen(buf), 0); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); } } //mkdir else if (strcmp(cmdLine, "mkdir") == 0) { memset(buf, 0, sizeof buf); char* value = strtok(NULL, " "); if (value != NULL) { sprintf(buf,"MKD %s\r\n", value); send(cmdSock, buf, strlen(buf), 0); recv(cmdSock, buf, BUFSIZ, 0); puts(buf); } } //lcd else if (strcmp(cmdLine, "lcd") == 0) { char* value = strtok(NULL, " "); if (value != NULL) { DIR* dir = opendir(value); if (dir) { memset(localAddress, 0, sizeof localAddress); strcpy(localAddress, value); printf("Local directory: %s\n\n", localAddress); } else { printf("Failed to change local directory\n\n"); } } } }
void KeyInfoDispose() { //按键检测处理 System.Key.Value = KeyScan() ; System.Key.Keylong = &Keylong ; if(!System.Key.Value) { // 处理休眠操作 if(System.Key.NoKeyTime == 180) { if(System.Dsp.Mode == CHECK_MODE||VIEW_MODE) { System.Dsp.Mode = SLEEP_MODE ; Light_Init() ; // SHOW_SCREEN(0xE8, " "); } } else if ((System.Key.NoKeyTime == 300)&&(System.Dsp.Mode == SLEEP_MODE)) { System.Dsp.Mode = SLEEP_MODE ; // SHOW_SCREEN(0xE8, "Power Saving Mode"); SHOW_SCREENW(0xE8, WcharToChar(L"节电模式") ); OSTimeDly(200); //必须有 } } else { // GR_DBG_PRINTF("keylong is %d OK it is %d\n\n",*System.Key.Keylong,Keylong); // 处理唤醒操作 System.Key.NoKeyTime = 0 ; if(System.Dsp.Mode == SLEEP_MODE) { CheckMode(); OSTimeDly(200) ; } //处理按键操作 switch(System.Key.Value) { case 1 :// 顶白光 { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { switch(System.Dsp.Mode) { case VIEW_MODE: CheckMode(); break ; default :break ; } Photo_SignAndCount(); } }break ; case 2 :// check: 850 940 770 闪烁 长按:进入PCCAM { }break ; case 3 ://check: 紫外-激光 长按:进入校正 { if(*System.Key.Keylong)// 进入校正功能 { if(System.Dsp.Mode == CHECK_MODE) { PriorExposure(); } } else { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { switch(System.Dsp.Mode) { case VIEW_MODE: CheckMode(); break ; default :break ; } if((System.Dsp.Mode ==PCCAM_MODE)||(System.Dsp.Mode ==CHECK_MODE)) { Photo_SignAndChk(); } } // PhotoMvRight() ; } }break ; case 4 ://check : sensor1 sensor2 sensor3 ,长按:608 { }break ; case 5 ://check: 左白光 右白光 左红外, 右红外 view:翻页 放大 { // PhotoDelAll(); if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { ViewMode() ; }break; case VIEW_MODE : { if(*System.Key.Keylong) { CheckMode(); } else { ViewMode_F1() ; } }break; default :break ; } } }break ; case 6 ://check: 底白光,底红外 view :右边翻页 { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { }break; case VIEW_MODE : { ViewMode_F2() ; }break; default :break ; } } }break ; case 7 ://view--check ; { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { C608_On() ; }break; case VIEW_MODE : { ViewMode_F3() ; }break; default :break ; } } }break ; case 8 ://check:短按单拍,长按8连拍 ,view 长按删除,短按确认 { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { if(*System.Key.Keylong)// 进入校正功能 { } else { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { // CheckMode(); if( System.Local_SignOutCount_Flag == 0 ) { System.Local_SignOutCount_Flag = 1 ; } Local_SignOutCount = 0 ; ShowLeftBtmNum(); }break; case VIEW_MODE : { ViewMode_F4() ; }break; default :break ; } } } }break ; case 9 ://check: 短按连拍,长按修改密码 // view:自动回放 { if(System.Led.Statu == C608_PWR_ON) { CheckMode(); OSTimeDly(100) ; } else { ViewMode() ; PhotoDelAll(); CheckMode(); } }break ; default : break ; } } }
void CEpgScan::Next() { bool llocked = false; #ifdef ENABLE_PIP bool plocked = false; #endif next_chid = 0; if (!standby && CNeutrinoApp::getInstance()->getMode() == NeutrinoMessages::mode_standby) return; if (CRecordManager::getInstance()->RecordingStatus() || CStreamManager::getInstance()->StreamStatus()) return; if (g_settings.epg_scan == SCAN_FAV && scanmap.empty()) AddFavorites(); if (g_settings.epg_scan == SCAN_SEL && scanmap.empty()) AddSelected(); if (!CheckMode() || scanmap.empty()) { EnterStandby(); return; } /* executed in neutrino thread - possible race with locks in zapit zap NOWAIT : send zapTo_NOWAIT -> EIT_COMPLETE from sectionsd -> zap and this at the same time */ CFEManager::getInstance()->Lock(); CFrontend *live_fe = NULL; #ifdef ENABLE_PIP CFrontend *pip_fe = NULL; #endif if (!standby) { bool webtv = IS_WEBTV(CZapit::getInstance()->GetCurrentChannelID()); if (!webtv) { llocked = true; live_fe = CZapit::getInstance()->GetLiveFrontend(); CFEManager::getInstance()->lockFrontend(live_fe); } #ifdef ENABLE_PIP pip_fe = CZapit::getInstance()->GetPipFrontend(); if (pip_fe /* && pip_fe != live_fe*/) { plocked = true; CFEManager::getInstance()->lockFrontend(pip_fe); } #endif } _repeat: for (eit_scanmap_iterator_t it = scanmap.begin(); it != scanmap.end(); /* ++it*/) { CZapitChannel * newchan = CServiceManager::getInstance()->FindChannel(it->second); if (newchan == NULL) { scanmap.erase(it++); continue; } if (CFEManager::getInstance()->canTune(newchan)) { INFO("try to tune [%s]", newchan->getName().c_str()); next_chid = newchan->getChannelID(); break; } else INFO("skip [%s], cannot tune", newchan->getName().c_str()); ++it; } if (!next_chid && ((g_settings.epg_scan == SCAN_FAV) && AddFavorites())) goto _repeat; if (!next_chid && ((g_settings.epg_scan == SCAN_SEL) && AddSelected())) goto _repeat; if (llocked) CFEManager::getInstance()->unlockFrontend(live_fe); #ifdef ENABLE_PIP if (plocked) CFEManager::getInstance()->unlockFrontend(pip_fe); #endif CFEManager::getInstance()->Unlock(); if (next_chid) g_Zapit->zapTo_epg(next_chid, standby); else EnterStandby(); }
void KeyInfoDispose_Debug() { //按键检测处理 System.Key.Value = KeyScan() ; System.Key.Keylong = &Keylong ; if(!System.Key.Value) { // 处理休眠操作 } else { // GR_DBG_PRINTF("keylong is %d OK it is %d\n\n",*System.Key.Keylong,Keylong); // 处理唤醒操作 System.Key.NoKeyTime = 0 ; if(System.Dsp.Mode == SLEEP_MODE) { CheckMode(); } //处理按键操作 switch(System.Key.Value) { case 1 :// 顶白光 { Top_W_On(); PhotoMvLeft() ; }break ; case 2 :// check: 850 940 770 闪烁 长按:进入PCCAM { #ifdef ONE_SENSOR Top_IR940_On_test(); PhotoMvUp() ; #else if(*System.Key.Keylong) { switch(System.Dsp.Mode ) { case PCCAM_MODE : CheckMode(); break; default: PccamMode(); break; } } else { if(System.Dsp.Mode == CHECK_MODE||PCCAM_MODE) { switch(System.Led.Statu) { case TOP_IR850_ON : Top_IR940_On();break ; case TOP_IR940_ON : Right_IR770_On();break ; default :Top_IR850_On(); break ; } } } #endif }break ; case 3 ://check: 紫外-激光 长按:进入校正 { if(*System.Key.Keylong)// 进入校正功能 { if(System.Dsp.Mode == CHECK_MODE) { PriorExposure(); } } else { if((System.Dsp.Mode ==PCCAM_MODE)||(System.Dsp.Mode ==CHECK_MODE)) { Double_UV_On(); } PhotoMvRight() ; } }break ; case 4 ://check : sensor1 sensor2 sensor3 ,长按:608 { switch(System.Dsp.Mode) { #ifdef ONE_SENSOR case PCCAM_MODE : { if(*System.Key.Keylong) { CheckMode(); } } break ; #endif case VIEW_MODE : case CHECK_MODE : { if(*System.Key.Keylong) { PccamMode(); } else { // switch(System.Led.Statu) // { // case C608_PWR_ON: CheckMode();break; // default:C608_On(); break; // } PhotoZoomUp(); } } break ; default :break ; } }break ; case 5 ://check: 左白光 右白光 左红外, 右红外 view:翻页 放大 { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { switch(System.Led.Statu) { case LEFT_W_ON : Right_W_On(); break ; case RIGHT_W_ON : Left_IR850_On(); break ; case LEFT_IR850_ON: Right_IR850_On(); break ; default :Left_W_On(); } }break; case VIEW_MODE : { switch(System.Dsp.ViewMode.Zoom) { case X0 : PhotoPrevious(); break; default : PhotoMvLeft() ; } }break; default :break ; } }break ; case 6 ://check: 底白光,底红外 view :右边翻页 { switch(System.Dsp.Mode) { case PCCAM_MODE : case CHECK_MODE : { switch(System.Led.Statu) { case BOT_W_ON : Bot_IR_On(); break ; default :Bot_W_On(); } }break; case VIEW_MODE : { switch(System.Dsp.ViewMode.Zoom) { //case X0 : PhotoNext(); break ; default : PhotoMvDown() ; break ; } }break; default :break ; } }break ; case 7 ://view--check ; { switch(System.Dsp.Mode) { case CHECK_MODE : { VerifyPassword(0x07,&CheckMode,&ViewMode); } break; case VIEW_MODE : { CheckMode(); } break; default :break ; } }break ; case 8 ://check:短按单拍,长按8连拍 ,view 长按删除,短按确认 { switch(System.Dsp.Mode) { case CHECK_MODE : { #ifdef ONE_SENSOR PhotographOne(); #else if(*System.Key.Keylong) { //PhotographOne(); } else { PhotographEight(); } #endif }break; case VIEW_MODE : { if(*System.Key.Keylong) { PhotoDelAll(); } else { } }break; default :break ; } }break ; case 9 ://check: 短按连拍,长按修改密码 // view:自动回放 { switch(System.Dsp.Mode) { case CHECK_MODE : { if(*System.Key.Keylong) { VerifyPassword(0x09,&CheckMode,&ChangePassWord); CheckMode(); } else { PhotographFour(); } }break; case VIEW_MODE : { PhotoAutoView(); // 自动回放 }break; default :break ; } }break ; default : break ; } } }
void TESTC() { // boardtest(); //for( ;; ) //{ ///*----------------------------------------------------*/ // // Double_UV_On(); // OSTimeDly(400); // // Light_Init(); // OSTimeDly(400); // ///*----------------------------------------------------*/ // //} // 老化测试 --紫灯的老化测试 unsigned int i =0 ; unsigned char m ; unsigned char LightOn = 0, LightOff = 0 ; uint8_t data[10] = {0xF9,8,'O','N',0x33,0x33,'O','F', 0x33,0x33, } ; SHOW_SCREEN(0xE8 , "Enter the Value:"); while(1) { m = 0 ; OSTimeDly(10) ; m = KeyScan(); if(m == 6) // 亮的时间 { uint8_t ss[1] ; LightOn += 1 ; if(LightOn ==9 ){LightOn = 0 ; } ss[0] = LightOn+0x30; SHOW_SCREEN_LONG(0xE8,"Light On S:",ss); data[4]=0x30+LightOn/10; data[5]=0x30+LightOn%10; // while(K6 == 0); OSTimeDly(30);break ; } if(m == 7) // 亮的时间 { uint8_t ss[1] ; LightOff += 1 ; if(LightOff ==9 ){LightOff = 0 ; } ss[0] = LightOff+0x30; SHOW_SCREEN_LONG(0xE8,"Light Off S:",ss); data[8]=0x30+LightOff/10; data[9]=0x30+LightOff%10; // while(K7 == 0); OSTimeDly(30);break ; } if(m == 8) { Select_Send(0xE9); OSTimeDly(100); Scen_Send(0xFA,0x01); //DSP_SEND(8, &TOP_W_d[0]); SHOW_SCREENA(0xF9, 10, &data[2]); break ; } } System.Key.Value = 0 ; System.Led.Statu = TOP_WHITE_ON ; System.Dsp.Mode = CHECK_MODE; CheckMode(); for(i = 0 ;i <= 2000; i++ ) { /*----------------------------------------------------*/ Double_UV_On(); OSTimeDly(100); if(LightOn>2) Select_Send(0x21); OSTimeDly(LightOn*100); if(LightOff == 0)Light_Init(); OSTimeDly(LightOff*100); /*----------------------------------------------------*/ } }
static void ReconstructRow(const VP8Decoder* const dec, const VP8ThreadContext* ctx) { int j; int mb_x; const int mb_y = ctx->mb_y_; const int cache_id = ctx->id_; uint8_t* const y_dst = dec->yuv_b_ + Y_OFF; uint8_t* const u_dst = dec->yuv_b_ + U_OFF; uint8_t* const v_dst = dec->yuv_b_ + V_OFF; // Initialize left-most block. for (j = 0; j < 16; ++j) { y_dst[j * BPS - 1] = 129; } for (j = 0; j < 8; ++j) { u_dst[j * BPS - 1] = 129; v_dst[j * BPS - 1] = 129; } // Init top-left sample on left column too. if (mb_y > 0) { y_dst[-1 - BPS] = u_dst[-1 - BPS] = v_dst[-1 - BPS] = 129; } else { // we only need to do this init once at block (0,0). // Afterward, it remains valid for the whole topmost row. memset(y_dst - BPS - 1, 127, 16 + 4 + 1); memset(u_dst - BPS - 1, 127, 8 + 1); memset(v_dst - BPS - 1, 127, 8 + 1); } // Reconstruct one row. for (mb_x = 0; mb_x < dec->mb_w_; ++mb_x) { const VP8MBData* const block = ctx->mb_data_ + mb_x; // Rotate in the left samples from previously decoded block. We move four // pixels at a time for alignment reason, and because of in-loop filter. if (mb_x > 0) { for (j = -1; j < 16; ++j) { Copy32b(&y_dst[j * BPS - 4], &y_dst[j * BPS + 12]); } for (j = -1; j < 8; ++j) { Copy32b(&u_dst[j * BPS - 4], &u_dst[j * BPS + 4]); Copy32b(&v_dst[j * BPS - 4], &v_dst[j * BPS + 4]); } } { // bring top samples into the cache VP8TopSamples* const top_yuv = dec->yuv_t_ + mb_x; const int16_t* const coeffs = block->coeffs_; uint32_t bits = block->non_zero_y_; int n; if (mb_y > 0) { memcpy(y_dst - BPS, top_yuv[0].y, 16); memcpy(u_dst - BPS, top_yuv[0].u, 8); memcpy(v_dst - BPS, top_yuv[0].v, 8); } // predict and add residuals if (block->is_i4x4_) { // 4x4 uint32_t* const top_right = (uint32_t*)(y_dst - BPS + 16); if (mb_y > 0) { if (mb_x >= dec->mb_w_ - 1) { // on rightmost border memset(top_right, top_yuv[0].y[15], sizeof(*top_right)); } else { memcpy(top_right, top_yuv[1].y, sizeof(*top_right)); } } // replicate the top-right pixels below top_right[BPS] = top_right[2 * BPS] = top_right[3 * BPS] = top_right[0]; // predict and add residuals for all 4x4 blocks in turn. for (n = 0; n < 16; ++n, bits <<= 2) { uint8_t* const dst = y_dst + kScan[n]; VP8PredLuma4[block->imodes_[n]](dst); DoTransform(bits, coeffs + n * 16, dst); } } else { // 16x16 const int pred_func = CheckMode(mb_x, mb_y, block->imodes_[0]); VP8PredLuma16[pred_func](y_dst); if (bits != 0) { for (n = 0; n < 16; ++n, bits <<= 2) { DoTransform(bits, coeffs + n * 16, y_dst + kScan[n]); } } } { // Chroma const uint32_t bits_uv = block->non_zero_uv_; const int pred_func = CheckMode(mb_x, mb_y, block->uvmode_); VP8PredChroma8[pred_func](u_dst); VP8PredChroma8[pred_func](v_dst); DoUVTransform(bits_uv >> 0, coeffs + 16 * 16, u_dst); DoUVTransform(bits_uv >> 8, coeffs + 20 * 16, v_dst); } // stash away top samples for next block if (mb_y < dec->mb_h_ - 1) { memcpy(top_yuv[0].y, y_dst + 15 * BPS, 16); memcpy(top_yuv[0].u, u_dst + 7 * BPS, 8); memcpy(top_yuv[0].v, v_dst + 7 * BPS, 8); } } // Transfer reconstructed samples from yuv_b_ cache to final destination. { const int y_offset = cache_id * 16 * dec->cache_y_stride_; const int uv_offset = cache_id * 8 * dec->cache_uv_stride_; uint8_t* const y_out = dec->cache_y_ + mb_x * 16 + y_offset; uint8_t* const u_out = dec->cache_u_ + mb_x * 8 + uv_offset; uint8_t* const v_out = dec->cache_v_ + mb_x * 8 + uv_offset; for (j = 0; j < 16; ++j) { memcpy(y_out + j * dec->cache_y_stride_, y_dst + j * BPS, 16); } for (j = 0; j < 8; ++j) { memcpy(u_out + j * dec->cache_uv_stride_, u_dst + j * BPS, 8); memcpy(v_out + j * dec->cache_uv_stride_, v_dst + j * BPS, 8); } } } }
void ICPClass::HandleInput(int mode, CPButtonObject *pbutton) { AircraftClass *playerAC = SimDriver.GetPlayerAircraft(); if(!g_bRealisticAvionics) { //MI original code if(mode == AA_BUTTON || mode == AG_BUTTON || mode == NAV_BUTTON) { if(pbutton != mpPrimaryExclusiveButton) { mpPrimaryExclusiveButton->SetCurrentState(0); mICPPrimaryMode = mode; mpPrimaryExclusiveButton = pbutton; if(mICPSecondaryMode == NONE_MODE) { mUpdateFlags |= CNI_UPDATE; ExecCNIMode(); } } } else if(mode == PREV_BUTTON || mode == NEXT_BUTTON) { HandlePrevNext(mode, mICPSecondaryMode); } else if(mode == ENTR_BUTTON) { HandleENTR(mICPSecondaryMode); } else if(mode == COMM1_BUTTON || mode == COMM2_BUTTON) { if(pbutton != mpTertiaryExclusiveButton) { mpTertiaryExclusiveButton->SetCurrentState(0); mICPTertiaryMode = mode; mpTertiaryExclusiveButton = pbutton; mUpdateFlags |= CNI_UPDATE; if(VM) { if(mode == COMM1_BUTTON) { VM->SetRadio(0); } else { VM->SetRadio(1); } } } } else { if(pbutton == mpSecondaryExclusiveButton) { mICPSecondaryMode = NONE_MODE; mpSecondaryExclusiveButton->SetCurrentState(0); mpSecondaryExclusiveButton = NULL; mUpdateFlags |= CNI_UPDATE; ExecCNIMode(); } else { if(mpSecondaryExclusiveButton != NULL) { mpSecondaryExclusiveButton->SetCurrentState(0); } mICPSecondaryMode = mode; mpSecondaryExclusiveButton = pbutton; switch(mode) { case NONE_MODE: break; case STPT_BUTTON: playerAC->FCC->SetStptMode(FireControlComputer::FCCWaypoint); playerAC->FCC->waypointStepCmd = 127; mUpdateFlags |= STPT_UPDATE; break; case DLINK_BUTTON: playerAC->FCC->SetStptMode(FireControlComputer::FCCDLinkpoint); playerAC->FCC->waypointStepCmd = 127; mUpdateFlags |= DLINK_UPDATE; ExecDLINKMode(); break; case MARK_BUTTON: playerAC->FCC->SetStptMode(FireControlComputer::FCCMarkpoint); playerAC->FCC->waypointStepCmd = 127; mUpdateFlags |= MARK_UPDATE; ExecMARKMode(); break; case ILS_BUTTON: mUpdateFlags |= ILS_UPDATE; ExecILSMode(); break; case CRUS_BUTTON: mUpdateFlags |= CRUS_UPDATE; ExecCRUSMode(); break; case FACK_BUTTON: mUpdateFlags |= FACK_UPDATE; PNUpdateFACKMode (NEXT_BUTTON, FACK_BUTTON); ExecFACKMode(); break; case ALOW_BUTTON: mUpdateFlags |= ALOW_UPDATE; break; } } } } else { if(!playerAC->HasPower(AircraftClass::UFCPower) || playerAC->mFaults->GetFault(FaultClass::ufc_fault)) return; //Master Modes if(mode == AA_BUTTON || mode == AG_BUTTON || mode == NAV_BUTTON) { mICPPrimaryMode = mode; if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == EIGHT_BUTTON) ExecMODEMode(); if(mode == AA_BUTTON) { IN_AA = TRUE; IN_AG = FALSE; } else if(mode == AG_BUTTON) { IN_AA = FALSE; IN_AG = TRUE; } } /****************************************************/ /*These are OVERRIDE buttons. With each of these */ /*we can get into specific DED pages, no matter in */ /*what mode we've been before. */ /****************************************************/ else if(mode == COMM1_BUTTON || mode == COMM2_BUTTON || mode == LIST_BUTTON || mode == IFF_BUTTON) { //This results in a new DED page, clear our strings ClearStrings(); //Did we push the same button as before? if(mICPTertiaryMode == mode && mode != CNI_MODE) PushedSame(LastMode); else NewMode(mode); } //END OVERRIDE FUNCTIONS //special case, FACK else if(mode == FACK_BUTTON) { if (playerAC && playerAC->mFaults) { if (m_FaultDisplay == false) { // was off m_FaultDisplay = true; // now on //have a fault, update our display playerAC->mFaults->GetFirstFault(&m_subsystem, &m_function); } else { // move to next fault if (playerAC->mFaults->GetFFaultCount() <= 0 || playerAC->mFaults->GetNextFault(&m_subsystem, &m_function) == FALSE) m_FaultDisplay = false; } mUpdateFlags |= FACK_UPDATE; // we need to do some work } } //SENCONDAR FUNCTIONS else if(mode == PREV_BUTTON || mode == NEXT_BUTTON) { ClearStrings(); if(IsICPSet(ICPClass::EDIT_STPT)) PNUpdateSTPTMode(mode, 0); else if(mICPSecondaryMode == CRUS_MODE) StepHOMERNGSTPT(mode); else if(IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == SEVEN_BUTTON) PNUpdateMARKMode(mode, 0); else if(IsICPSet(ICPClass::EDIT_VHF) || IsICPSet(ICPClass::EDIT_UHF)) PNUpdateCOMMMode(mode, 0); else if(IsICPSet(ICPClass::MODE_DLINK)) PNUpdateDLINKMode(mode, 0); else if(IsICPSet(ICPClass::MODE_COMM1))//Cobra 10/31/04 TJL { if(mode == NEXT_BUTTON) { if(PREUHF == NUM_COMM_CHANNELS) // ASSO: PREUHF = 1; else PREUHF++; } else { if(PREUHF == 1) PREUHF = NUM_COMM_CHANNELS; // ASSO: else PREUHF--; } } else if(IsICPSet(ICPClass::MODE_COMM2)) { if(mode == NEXT_BUTTON) { if(PREVHF == NUM_COMM_CHANNELS) // ASSO: PREVHF = 1; else PREVHF++; } else { if(PREVHF == 1) PREVHF = NUM_COMM_CHANNELS; // ASSO: else PREVHF--; } } else if(IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == SIX_BUTTON) { if(mode == NEXT_BUTTON) { if(running) { running = FALSE; stopped = TRUE; } else if(stopped) { running = TRUE; stopped = FALSE; } else { Start = vuxGameTime; running = TRUE; } } else { Start = vuxGameTime; Difference = 0; running = FALSE; stopped = FALSE; } } else if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == EWS_MODE) { if(PGMFlare || PGMChaff) StepEWSProg(mode); else PNUpdateSTPTMode(mode, 0); } // Retro 3Jan2004 start else if ((g_bPilotEntertainment)&&(winamp)&&(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == ZERO_MODE)) { if (mode == PREV_BUTTON) winamp->VolDown(); else if (mode == NEXT_BUTTON) winamp->VolUp(); } // Retro 3Jan2004 end } else if(mode == ENTR_BUTTON) ICPEnter(); else if(mode == CLEAR_BUTTON) { if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == 0) { ClearStrings(); ExecINTGMode(); mICPSecondaryMode = 100; //small hack } else ClearInput(); } else if (mode == UP_MODE || mode == DOWN_MODE || mode == SEQ_MODE || mode == CNI_BUTTON) { if(mode == CNI_MODE) mICPTertiaryMode = CNI_MODE; CNISwitch(mode); // Retro 3Jan2004 start // Retro from here, kind of a hack having this here.. if ((g_bPilotEntertainment)&&(winamp)&&(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == ZERO_MODE)) { if (mode == UP_MODE) winamp->Next(); else if (mode == DOWN_MODE) winamp->Previous(); else if (mode == SEQ_MODE) winamp->TogglePlayback(); } // Retro 3Jan2004 end } //****************** //****************** //SECONDARY BUTTONS* //****************** //****************** //'1' BUTTON else if(mode == ONE_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else OneButton(mode); } //'2' BUTTON else if(mode == TWO_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else TwoButton(mode); } //'3' BUTTON else if(mode == THREE_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else ThreeButton(mode); } //'4' BUTTON else if(mode == FOUR_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else FourButton(mode); } //'5' BUTTON else if(mode == FIFE_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else FifeButton(mode); } //'6' BUTTON else if(mode == SIX_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else SixButton(mode); } //'7' BUTTON else if(mode == SEVEN_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else SevenButton(mode); } //'8' BUTTON else if(mode == EIGHT_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else EightButton(mode); } //'9' BUTTON else if(mode == NINE_BUTTON) { if(CheckMode()) return; else if(ManualInput()) HandleManualInput(mode); else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) EWSOnOff(); else NineButton(mode); } //'0' BUTTON else if(mode == ZERO_BUTTON) { if((IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == FIFE_BUTTON) && !IsICPSet(ICPClass::BLOCK_MODE)) { if(Cruise_RNG) { if(GetCruiseIndex() == 1) SetCruiseIndex(-1); else SetCruiseIndex(1); } else if(Cruise_HOME) { if(GetCruiseIndex() == 2) SetCruiseIndex(-1); else SetCruiseIndex(2); } else if(Cruise_EDR) { if(GetCruiseIndex() == 3) SetCruiseIndex(-1); else SetCruiseIndex(3); } else { if(GetCruiseIndex() == 0) SetCruiseIndex(-1); else SetCruiseIndex(0); } return; } else if(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == EIGHT_BUTTON) { if(ShowBullseyeInfo) ShowBullseyeInfo = FALSE; else ShowBullseyeInfo = TRUE; return; } if(CheckMode()) return; else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO)) return; else if(ManualInput()) HandleManualInput(mode); else ZeroButton(mode); } /*else if(mode == FACK_BUTTON) { ClearStrings(); ClearFlags(); SetICPFlag(ICPClass::MODE_FACK); PNUpdateFACKMode (NEXT_BUTTON, FACK_BUTTON); ExecFACKMode(); }*/ } }
//========================================================================= //----- (00000148) -------------------------------------------------------- __myevic__ void Main() { InitDevices(); InitVariables(); // Enable chip temp sensor sampling by ADC if ( ISRX300 ) { SYS->IVSCTL |= SYS_IVSCTL_VTEMPEN_Msk; } InitHardware(); myprintf( "\n\nJoyetech APROM\n" ); myprintf( "CPU @ %dHz(PLL@ %dHz)\n", SystemCoreClock, PllClock ); SetBatteryModel(); gFlags.sample_vbat = 1; ReadBatteryVoltage(); gFlags.sample_btemp = 1; ReadBoardTemp(); InitDisplay(); MainView(); SplashTimer = 3; CustomStartup(); if ( !PD3 ) { DrawScreen(); while ( !PD3 ) ; } while ( 1 ) { while ( gFlags.playing_fb ) { // Flappy Bird game loop fbCallTimeouts(); if ( gFlags.tick_100hz ) { // 100Hz gFlags.tick_100hz = 0; ResetWatchDog(); TimedItems(); SleepIfIdle(); GetUserInput(); if ( !PE0 ) SleepTimer = 3000; } if ( gFlags.tick_10hz ) { // 10Hz gFlags.tick_10hz = 0; DataFlashUpdateTick(); } } if ( gFlags.firing ) { ReadAtoCurrent(); } if ( gFlags.tick_5khz ) { // 5000Hz gFlags.tick_5khz = 0; if ( gFlags.firing ) { RegulateBuckBoost(); } } if ( gFlags.tick_1khz ) { // 1000Hz gFlags.tick_1khz = 0; if ( gFlags.firing ) { ReadAtomizer(); if ( ISMODETC(dfMode) ) { if ( gFlags.check_mode ) { CheckMode(); } TweakTargetVoltsTC(); } else if ( ISMODEVW(dfMode) ) { TweakTargetVoltsVW(); } } if ( dfStatus.vcom ) { VCOM_Poll(); } } if ( gFlags.tick_100hz ) { // 100Hz gFlags.tick_100hz = 0; ResetWatchDog(); if ( gFlags.read_battery ) { gFlags.read_battery = 0; } TimedItems(); SleepIfIdle(); ReadBatteryVoltage(); ReadBoardTemp(); if ( gFlags.firing && BoardTemp >= 70 ) { Overtemp(); } if ( ISVTCDUAL ) { BatteryChargeDual(); } else if ( ISCUBOID || ISCUBO200 || ISRX200S || ISRX23 || ISRX300 ) { BatteryCharge(); } if (( gFlags.anim3d ) && ( Screen == 1 ) && ( !EditModeTimer )) { anim3d( 0 ); } if ( Screen == 60 ) { AnimateScreenSaver(); } if ( gFlags.firing ) { if ( gFlags.read_bir && ( FireDuration > 10 ) ) { ReadInternalResistance(); } if ( PreheatTimer && !--PreheatTimer ) { uint16_t pwr; if ( dfMode == 6 ) { pwr = dfSavedCfgPwr[ConfigIndex]; } else { pwr = dfPower; } if ( pwr > BatteryMaxPwr ) { gFlags.limit_power = 1; PowerScale = 100 * BatteryMaxPwr / pwr; } else { gFlags.limit_power = 0; PowerScale = 100; } } } if ( KeyTicks >= 5 ) { KeyRepeat(); } GetUserInput(); } if ( gFlags.tick_10hz ) { // 10Hz gFlags.tick_10hz = 0; DataFlashUpdateTick(); LEDTimerTick(); if ( gFlags.firing ) { ++FireDuration; if ( gFlags.monitoring ) { Monitor(); } } if ( ShowWeakBatFlag ) --ShowWeakBatFlag; if ( ShowProfNum ) --ShowProfNum; if ( !( gFlags.firing && ISMODETC(dfMode) ) ) { DrawScreen(); } if ( KeyTicks < 5 ) { KeyRepeat(); } } if ( gFlags.tick_5hz ) { // 5Hz gFlags.tick_5hz = 0; if ( !gFlags.rtcinit && NumBatteries ) { InitRTC(); } if ( gFlags.firing ) { if ( TargetVolts == 0 ) { ProbeAtomizer(); } } else { if ( !dfStatus.off && Event == 0 && ( AtoProbeCount < 12 ) && ( Screen == 0 || Screen == 1 || Screen == 5 ) ) { ProbeAtomizer(); } } if ( IsClockOnScreen() ) { static uint8_t u8Seconds = 61; S_RTC_TIME_DATA_T rtd; GetRTC( &rtd ); if ( (uint8_t)rtd.u32Second != u8Seconds ) { u8Seconds = (uint8_t)rtd.u32Second; gFlags.refresh_display = 1; } } } if ( gFlags.tick_2hz ) { // 2Hz gFlags.tick_2hz = 0; gFlags.osc_1hz ^= 1; if ( gFlags.firing ) { if ( ISMODETC(dfMode) ) { DrawScreen(); } } else { if ( !dfStatus.off && Event == 0 && ( AtoProbeCount >= 12 ) && ( Screen == 0 || Screen == 1 || Screen == 5 ) ) { ProbeAtomizer(); } if ( gFlags.monitoring ) { Monitor(); } } } if ( gFlags.tick_1hz ) { // 1Hz gFlags.tick_1hz = 0; if ( SplashTimer ) { --SplashTimer; if ( !SplashTimer ) { MainView(); } } if ( !gFlags.firing && !dfStatus.off && !EditModeTimer ) { if ( HideLogo ) { if ( Screen == 1 ) { --HideLogo; if ( !HideLogo ) { gFlags.refresh_display = 1; } } } } } EventHandler(); } }
/* *---------------------------------------------------------------------- * * VmInit -- * * Stub for the VmInit system call. * * Results: * None. * * Side effects: * VM system is initialized. * *---------------------------------------------------------------------- */ static void vmInit(sysargs *sysargsPtr) { CheckMode(); } /* vmInit */