void Initialise(int argc, char *argv[]) { InitThreads(HT_MSGMON); if(InitShell(argc,argv,hnettest_version)<SUCCESS) HError(999,"Initialise: couldnt init HShell"); InitMem(); InitLabel(); InitMath(); InitSigP(); InitWave(); InitAudio(); if(InitParm()<SUCCESS) HError(999,"Initialise: couldnt init HParm"); InitGraf(FALSE); InitModel(); InitDict(); InitNet(); EnableBTrees(); /* allows unseen triphones to be synthesised */ if (!InfoPrinted() && NumArgs() == 0) ReportUsage(); }
s32 _DEV9open() { //handleDEV9Thread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) DEV9ThreadProc, &dwThrdParam, CREATE_SUSPENDED, &dwThreadId); //SetThreadPriority(handleDEV9Thread,THREAD_PRIORITY_HIGHEST); //ResumeThread (handleDEV9Thread); NetAdapter* na=GetNetAdapter(); if (!na) { emu_printf("Failed to GetNetAdapter()\n"); config.ethEnable = false; } else { InitNet(na); } return 0; }
bool CNetSever::StartSever() { if(run_state != 0 || port == 0 || net_data_agent == NULL) { return false; } if(InitNet()==false) { return false; } ////////////////////////////////////////////////////////////// if(thread_net_svr.XCreateThread((void *)NetSeverThread,this)==false) { return false; } ////////////////////////////////////////////////////////////// while(run_state != 1) {////////////////////////////////wait NetSeverThread XSleep(77); } run_state = 2; while((run_state != 8 ) && (run_state != 9)) { XSleep(77); } if( run_state == 8) {//////ok result in NetSeverThread return true; } run_state =0; return false; }
void TrainModel() { long a; pthread_t *pt = (pthread_t *)malloc(num_threads * sizeof(pthread_t)); if (model_file[0] == 0) return; int iter = 0; FILE *t1 = fopen(model_file, "rb"); FILE *t2 = fopen(model_file_nnet, "rb"); if(t1 != NULL && t2 != NULL) { fclose(t1); fclose(t2); fprintf(stderr, "Restoring nnet from existing files %s, %s\n", model_file, model_file_nnet); LoadNnet(); } else { LearnVocabFromTrainFile(); if(maxent_hash_size) { maxent_hash_size *= 1000000; maxent_hash_size -= maxent_hash_size % vocab_size; } InitNet(); SaveNnet(); } if(test_file[0] != 0) { counter = 0; real sumlogprob = EvaluateModel(test_file, 1); fprintf(stderr, "Test entropy %f\n", sumlogprob/log10(2)/(real)counter); return; } if(gen > 0) { Sample(gen, 0); return; } else if(gen < 0) { while(1) { Sample(-gen, 1); } return; } fprintf(stderr, "Starting training using file %s\n", train_file); FILE *fi = fopen(valid_file, "rb"); valid_words = 0; while (1) { ReadWordIndex(fi); ++valid_words; if (feof(fi)) break; } valid_file_size = ftell(fi); fclose(fi); real old_entropy = 1e99; real entropy; real diff = 1e99; int retry = 0; int decay = 0; while(retry < max_retry) { if(iter != 0) { if(decay) { alpha /= 2.0; maxent_alpha /= 2.0; } word_count_actual = 0; counter = 0; start = clock(); for (a = 0; a < num_threads; a++) pthread_create(&pt[a], NULL, TrainModelThread, (void *)a); for (a = 0; a < num_threads; a++) pthread_join(pt[a], NULL); } fprintf(stderr, "Iteration %d\t", iter); sumlogprob_valid = 0; counter = 0; sumlogprob_valid = EvaluateModel(valid_file, 0); entropy = sumlogprob_valid/log10(2)/(real)counter; fprintf(stderr, "Valid Entropy %f", entropy); ++iter; diff = old_entropy/entropy; if (isnan(entropy) || isinf(entropy) || diff < stop) { if (decay == 1) { ++retry; fprintf(stderr, "\tRetry %d/%d", retry, max_retry); } else { decay = 1; fprintf(stderr, "\tDecay started"); } if(isnan(entropy) || isinf(entropy) || diff < reject_threshold) { fprintf(stderr, "\tNnet rejected"); FreeNnet(); int debug_ = debug_mode; debug_mode = 0; LoadNnet(); debug_mode = debug_; } } fprintf(stderr, "\n"); if(diff > 1.0) { SaveNnet(); old_entropy = entropy; } } }
int main(void) { u8 readstatus,firstread=0; u8 humi_set_temp=humi_set; u8 temp_set_temp=temp_set; //main1(); /* USART1 config 115200 8-N-1 */ // USART1_Config(); // // printf("\r\n this is a yhx firmware \r\n"); /* 配置SysTick 为1us中断一次 */ SysTick_Init(); // TIM3_Int_Init(100,7199); DelayInit(); // delay_init(72); /*按键输入初始化*/ GPIO_INPUT_INIT(); /*输出初始化*/ IO_OUTPUT_Config(); /* I2C 外设初(AT24C02)始化 */ I2C_EE_Init(); /*当按下-键时,程序会执行默认的IP192.168.3.248,不会从eeprom读取数据*/ if( Key_Scan(KEYPORT,KEY_SUB,1) != KEY_ON ) I2C_EE_Restore(); if(EE_FLAG!=i2c_eeprom_data[0]) { //初始温湿度设定及裕量 i2c_eeprom_data[0]=EE_FLAG; i2c_eeprom_data[1]=temp_set; i2c_eeprom_data[2]=humi_set; i2c_eeprom_data[3]=temp_distance; i2c_eeprom_data[4]=humi_distance; //初始化net //ip i2c_eeprom_data[8]=ipaddress[0]; i2c_eeprom_data[9]=ipaddress[1]; i2c_eeprom_data[10]=ipaddress[2]; i2c_eeprom_data[11]=ipaddress[3]; //mask i2c_eeprom_data[12]=maskaddress[0]; i2c_eeprom_data[13]=maskaddress[1]; i2c_eeprom_data[14]=maskaddress[2]; i2c_eeprom_data[15]=maskaddress[3]; //gate i2c_eeprom_data[16]=gateaddress[0]; i2c_eeprom_data[17]=gateaddress[1]; i2c_eeprom_data[18]=gateaddress[2]; i2c_eeprom_data[19]=gateaddress[3]; //mac i2c_eeprom_data[24]=mymac[0]; i2c_eeprom_data[25]=mymac[1]; i2c_eeprom_data[26]=mymac[2]; i2c_eeprom_data[27]=mymac[3]; i2c_eeprom_data[28]=mymac[4]; i2c_eeprom_data[29]=mymac[5]; I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data, 0, 8); //网络 I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data+8, 8, 8); I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data+16, 16, 8); I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data+24, 24, 8); } //中断开启,配置net管脚和传感器data管脚中断 // NVIC_Configuration(); /*SHT10-模拟I2C读取温湿度,初始化*/ // Sht_GPIO_Config(); // s_connectionreset(); // sht10_read(); /*初始化DTT11的引脚*/ DHT11_GPIO_Config(); SPI1_Init(); //InitNet(); /* 初始化网络设备以及UIP协议栈,配置IP地址 */ //数码管初始化 hc595_init(); /* 配置SysTick 为10ms中断一次 */ // SysTick_Init(); TimingInput=0;//输入节拍20ms IWDG_Init(4,625); //与分频数为64,重载值为625,溢出时间为1s while(1) { /*温湿度测量,massureflag请求测量标志*/ if(massureflag) { //数据伪造1213,温度控制用的是真实的,显示和上传的数据用的是渐变的伪造数据 if( (readstatus=Read_DHT11(&DHT11_Data))==SUCCESS) { if(firstread==0) { temp_val.f=DHT11_Data.temp_int; firstread=1; } else { if(DHT11_Data.temp_int>(int)temp_val.f) temp_val.f=temp_val.f+0.5; else if(DHT11_Data.temp_int<(int)temp_val.f) temp_val.f=temp_val.f-0.5; } humi_val.f=DHT11_Data.humi_int; sensor_error=0; massureflag=0; time18ms_out=0; if(set_wait>1000)//初始化已过 if((temp_val.f>-10)&&(temp_val.f<100)&&(humi_val.f>=0/*)&&(humi_val.f<100*/)&&poweron)//传感器没坏才输出 automation(); }else if(readstatus!=NOTREADY) { sensor_error++; } } if(sensor_error>5)//5次都没有采到温湿度 { temp_val.f=humi_val.f=-100; } //printf("温度:%.1f\t湿度%.1f\r\n",temp_val.f,humi_val.f); //根据检测到的温湿度控制led和继电器,刚开机3s的时候尚未检测到温湿度,此时最好不要有输出,在while之前添加sht10_read()吧,进来之前就读一次数据 if((0==poweron)||((time_s_remainder==0)&&(active!='a'))) { WARM(0); WARM_LED(0); COLD(0); COLD_LED(0); WET(0); WET_LED(0); ALWAYS_WET_LED(0); BEEP_SCREAM(0); work_state=0; } if(network_state==0) { //下面的代码是按键检测,用来设定温湿度设定值的 if(TimingInput)//输入检测20ms一次 { TimingInput=0; key_input_last=key_input; GPIO_INPUT_SCAN(); if(key_input==key_input_last)//检测是否一直按着同一个按键 press_same_key_flag=1;//一直按着同一个按键 else press_same_key_flag=0; //蜂鸣器响应 if((key_input)&&(beeptime<300)) { //蜂鸣器响 BEEP_SCREAM(1); }else { if(key_input==0) beeptime=0; //蜂鸣器关闭 BEEP_SCREAM(0); } //是否进入设定状态,闪烁。 if(0==showdigital)//之前就是闪烁状态,temp_set_temp数据要保留 { temp_set_temp=temp_set; humi_set_temp=humi_set; } if((0==press_same_key_flag)&&(0!=key_input))//有按键按下但不是同一个按键 { //输入处理 switch (key_input) { case 1://set if(set_wait<=1000) set_start_flag=1; showdigital++;//第showdigital位闪烁 if(showdigital>4) showdigital=1; break; case 2://save showdigital=0; set_start_flag=0;//初始化完成标志 set_wait=1001;//设置等待10s结束 //将数据保存到eeprom,温湿度设定值 temp_set=temp_set_temp; humi_set=humi_set_temp; i2c_eeprom_data[1]=temp_set; i2c_eeprom_data[2]=humi_set; //写入eeprom i2c_eeprom_data[0]=EE_FLAG; I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data, 0, 5); break; case 4://+ //第showdigital位+ switch(showdigital) { case 1: temp_set_temp=(temp_set_temp/10+1)%10*10+temp_set_temp%10; break; case 2: temp_set_temp=temp_set_temp/10*10+(temp_set_temp%10+1)%10; break; case 3: humi_set_temp=(humi_set_temp/10+1)%10*10+humi_set_temp%10; break; case 4: humi_set_temp=humi_set_temp/10*10+(humi_set_temp%10+1)%10; break; default:; } break; case 8://- //第showdigital位+ switch(showdigital) { case 1: temp_set_temp=(temp_set_temp<10)?90+temp_set_temp:(temp_set_temp/10-1)%10*10+temp_set_temp%10; break; case 2: temp_set_temp=(temp_set_temp%10==0)?temp_set_temp+9:temp_set_temp-1; break; case 3: humi_set_temp=(humi_set_temp<10)?90+humi_set_temp:(humi_set_temp/10-1)%10*10+humi_set_temp%10; break; case 4: humi_set_temp=(humi_set_temp%10==0)?humi_set_temp+9:humi_set_temp-1; break; default:; } break; default:; } } } }else {//本地状态显示 humi_set_temp=humi_set; temp_set_temp=temp_set; key_input=0; showdigital=0; BEEP_SCREAM(0); beeptime=0; } //试用期写入 if((active!='a')&&(remainder_write>300)) { remainder_write=0; //写入eeprom //if(time_s_remainder>0) { i2c_eeprom_data[32]=(u8)time_s_remainder; i2c_eeprom_data[33]=(u8)(time_s_remainder>>8); i2c_eeprom_data[34]=(u8)(time_s_remainder>>16); i2c_eeprom_data[35]=(u8)(time_s_remainder>>24); I2C_EE_WaitOperationIsCompleted(); I2C_EE_WriteBuffer(i2c_eeprom_data+32, 32, 4); } } //sht10_j: //数码管输出 digitaldata[0]=digitaldata[1]=digitaldata[2]=digitaldata[3]=digitaldata[4]=digitaldata[5]=12;//12 if((active=='a')||(time_s_remainder>0))//激活态20150421 { //温度 if((temp_val.f<0)&&(temp_val.f>-10))//负值 { digitaldata[0]=10;//- digitaldata[1]=(u8)(-temp_val.f); digitaldata[2]=(u8)(-temp_val.f*10)%10; }else if((temp_val.f>=0)&&(temp_val.f<100))//正数 { digitaldata[0]=((u8)temp_val.f)/10; digitaldata[1]=((u8)temp_val.f)%10;//. digitaldata[2]=(u8)(((u16)(temp_val.f*10))%10); } //湿度 if(humi_val.f>=0)//((humi_val.f>=0)&&(humi_val.f<100)) { if(humi_val.f>=100) { temp_f=humi_val.f;//20150712 add temp xzk humi_val.f=99.9; } digitaldata[3]=((u8)humi_val.f)/10; digitaldata[4]=((u8)humi_val.f)%10;//. digitaldata[5]=(u8)(((u16)(humi_val.f*10))%10); if(humi_val.f>=99.9) humi_val.f=temp_f; } }else //试用期已经到了,显示off 20150421 { digitaldata[0]=0; digitaldata[3]=0; BEEP_SCREAM(1); } //设定温度值 digitaldata[6]=temp_set_temp/10; digitaldata[7]=temp_set_temp%10; //湿度设定 digitaldata[8]=humi_set_temp/10; digitaldata[9]=humi_set_temp%10; if((blickflag)&&(network_state==0))//可以闪烁 switch(showdigital) {//showdigital=0//低位到高位是否显示6 7 8 9,0都显示,1:9不显示;2:8不显示;3:7不显示;4:6不显示 case 1: digitaldata[6]=11; break; case 2: digitaldata[7]=11; break; case 3: digitaldata[8]=11; break; case 4: digitaldata[9]=11; break; default:; } hc595_display(digitaldata); //就地状态或网络状态PC3 if( Key_Scan(GPIOC,GPIO_Pin_3,0) == KEY_ON ) { /*按键有效*/ network_state=1; }else//就地 { network_state=0; //poweron=1; //0716 //启动开关PA12检测 20150719 if( Key_Scan(GPIOA,GPIO_Pin_12,1) == KEY_ON ) { poweron=1; }else { poweron=0; } } /* 下面是网络检测的程序,处理uip事件,必须插入到用户程序的循环体中 */ UipPro(); //中断触发读取网络接收缓存 eth_poll(); //定时查询TCP及UDP连接收发状态 ARP表更新, 并响应 IWDG_Feed();//喂狗 if(request_initnet>250)//等待2s初始化网络 { InitNet(); request_initnet=0; } }
/* Initializes the TCP server. This server will only be able to handle one client at a time. SRVTCP* pSRVTCP : (IN,OUT) pointer to the data structure representing the server char* address : (IN) server address char* port : (IN) server port Returns : EXIT_SUCCESS or EXIT_FAILURE if there is an error */ int InitSRVTCP(SRVTCP* pSRVTCP, char* address, char* port) { if ((pSRVTCP == NULL) || (pSRVTCP->initialized == 1)) { return EXIT_FAILURE; } pSRVTCP->address = (char*)calloc(strlen(address)+1, sizeof(char)); sprintf(pSRVTCP->address, "%s", address); pSRVTCP->port = (char*)calloc(strlen(port)+1, sizeof(char)); sprintf(pSRVTCP->port, "%s", port); pSRVTCP->DontBlock = 0; pSRVTCP->EndThread = 1; // The thread is not running pSRVTCP->NbConnections = 0; // No clients are currently connected pSRVTCP->ListenSocket = INVALID_SOCKET; pSRVTCP->addrinf = NULL; pSRVTCP->sock_list; pSRVTCP->sock_set; if (InitNet() != EXIT_SUCCESS) { free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (CreateSocketTCP(&pSRVTCP->ListenSocket, pSRVTCP->address, pSRVTCP->port, &pSRVTCP->addrinf) != EXIT_SUCCESS) { free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (SetSockOptTCP(pSRVTCP->ListenSocket, 1, 10000) != EXIT_SUCCESS) { // Setting timeouts on the server socket DestroySocketTCP(&pSRVTCP->ListenSocket, &pSRVTCP->addrinf); free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (BindListenTCP(pSRVTCP->ListenSocket, &pSRVTCP->addrinf) != EXIT_SUCCESS) { DestroySocketTCP(&pSRVTCP->ListenSocket, &pSRVTCP->addrinf); free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (InitCriticalSection(&pSRVTCP->CSEndThread) != EXIT_SUCCESS) { DestroySocketTCP(&pSRVTCP->ListenSocket, &pSRVTCP->addrinf); free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (InitCriticalSection(&pSRVTCP->CSNbConnections) != EXIT_SUCCESS) { DeleteCriticalSection(&pSRVTCP->CSEndThread); DestroySocketTCP(&pSRVTCP->ListenSocket, &pSRVTCP->addrinf); free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } if (FD_INIT(pSRVTCP->ListenSocket, &pSRVTCP->sock_list, &pSRVTCP->sock_set) != EXIT_SUCCESS) { DeleteCriticalSection(&pSRVTCP->CSNbConnections); DeleteCriticalSection(&pSRVTCP->CSEndThread); DestroySocketTCP(&pSRVTCP->ListenSocket, &pSRVTCP->addrinf); free(pSRVTCP->address);pSRVTCP->address = NULL; free(pSRVTCP->port);pSRVTCP->port = NULL; return EXIT_FAILURE; } pSRVTCP->initialized = 1; return EXIT_SUCCESS; }
#include "HLM.h" typedef enum {unknown, wordLoop, boBiGram, matBiGram, multiLat, wordPair} BuildType; static int trace = 0; /* Trace flags */ static LabId enterId; /* id of !ENTRY label in ngram */ static LabId exitId; /* id of !EXIT label in ngram */ static LabId bStartId=NULL; /* id of start bracket */ static LabId bEndId=NULL; /* id of end bracket */ static LabId unknownId; /* id of unknown label in ngram */ static Boolean zapUnknown = FALSE; /* zap unknown symbols from bigram */ MemHeap buildStack; /* ---------------- Configuration Parameters --------------------- */ static ConfParam *cParm[MAXGLOBS]; static int nParm = 0; /* total num params */ /* ---------------- Process Command Line ------------------------- */ /* SetConfParms: set conf parms relevant to this tool */ void SetConfParms(void) { int i; nParm = GetConfig("HBUILD", TRUE, cParm, MAXGLOBS); if (nParm>0){ if (GetConfInt(cParm,nParm,"TRACE",&i)) trace = i; } } void ReportUsage(void) { printf("\nUSAGE: HBuild [options] wordList latFile\n\n"); printf(" Option Default\n\n"); printf(" -b binary lattice output ASCII\n"); printf(" -m s load matrix bigram from s off\n"); printf(" -n s load back-off bigram from s off\n"); printf(" -s s1 s2 s1/s2 are bigram start/end labels !ENTER !EXIT\n"); printf(" -t s1 s2 bracket word-loop/pair with s1 s2 off\n"); printf(" -u s set unknown symbol to s !NULL\n"); printf(" -w s load word-pair grammar from s off\n"); printf(" -x s load multi-level lattice from s off\n"); printf(" -z ignore ngrams with unknown symbol off\n"); PrintStdOpts(""); printf("\n\n"); } int main(int argc, char *argv[]) { char *wordListFn,*latFn,*ipFn=NULL; LModel *bigramLm; BuildType bType = unknown; Boolean saveLatBin = FALSE; LatFormat format = HLAT_LMLIKE; Lattice *lat,*ipLat; Vocab voc; char *s; Lattice *ProcessWordLoop(MemHeap *latHeap, Vocab *voc); Lattice *ProcessBiGram(MemHeap *latHeap, Vocab *voc, LModel *biLM); void SaveLattice(Lattice *lat, char *latFn, LatFormat format); Lattice *LoadLattice(MemHeap *latHeap, char *latFn, Vocab *voc, Boolean shortArc); Lattice *ProcessWordPair(MemHeap *latHeap, Vocab *voc, char *fn); if(InitShell(argc,argv,hbuild_version,hbuild_vc_id)<SUCCESS) HError(3000,"HBuild: InitShell failed"); InitMem(); InitLabel(); InitMath(); InitDict(); InitNet(); InitLM(); CreateHeap(&buildStack, "HBuild Stack", MSTAK, 1, 0.0, 100000, LONG_MAX ); if (!InfoPrinted() && NumArgs() == 0) ReportUsage(); if (NumArgs() == 0) Exit(0); SetConfParms();
int main(int argc, char *argv[]) { char *s,*lfn,*dfn; void GenSentences(char *latfn, char *dicfn); if(InitShell(argc,argv,hsgen_version,hsgen_vc_id)<SUCCESS) HError(3400,"HSGen: InitShell failed"); InitMem(); InitLabel(); InitMath(); InitSigP(); InitWave(); InitAudio(); InitVQ(); InitModel(); if(InitParm()<SUCCESS) HError(3200,"HSGen: InitParm failed"); InitDict(); InitNet(); if (!InfoPrinted() && NumArgs() == 0) ReportUsage(); if (NumArgs() == 0) Exit(0); SetConfParms(); while (NextArg() == SWITCHARG) { s = GetSwtArg(); if (strlen(s)!=1) HError(3419, "Bad switch %s; must be single letter", s); switch(s[0]){ case 's': stats = TRUE; break; case 'l': lnum = TRUE; break; case 'n': ngen = GetChkedInt(1,1000000,s); break; case 'q': quiet = TRUE; break; case 'T': trace = GetChkedInt(0,07,s); break; default: HError(3419, "Unknown switch %s", s); } } if (NextArg()!=STRINGARG) HError(3419, "lattice file name expected"); lfn = GetStrArg(); if (NextArg()!=STRINGARG) HError(3419, "dictionary file name expected"); dfn = GetStrArg(); GenSentences(lfn,dfn); if(InitShell(argc,argv,hsgen_version,hsgen_vc_id)<SUCCESS) HError(3400,"HSGen: InitShell failed"); ResetNet(); ResetDict(); ResetParm(); ResetModel(); ResetVQ(); ResetAudio(); ResetWave(); ResetSigP(); ResetMath(); ResetLabel(); ResetMem(); ResetShell(); Exit(0); return (0); /* never reached -- make compiler happy */ }
int main(void) { InitBoard(); /* 为了是main函数看起来更简洁些,我们将初始化的代码封装到这个函数 */ DispLogo(); /* 显示例程Logo */ InitNet(); /* 初始化网络设备以及UIP协议栈,配置IP地址 */ /* 创建一个TCP监听端口,端口号为1000 */ //uip_listen(HTONS(1000)); printf("\n\rBuilding UDP connectiong to 192.168.20.156...\n\n\r"); while(1) { //InitNet(); if(i_ip==0) { SetIP1(); i_ip=1; } else { SetIP2(); i_ip=0; } uip_udp_init(); if(circle_flag==0) { //display main menu printf("\t\t<--Main Menu-->\t\t\n\n\r"); printf(" 1. Get Status\n\r"); printf(" 2. Start SpeedTest\n\r"); printf(" 3. Get SpeedTestStatus\n\r"); printf(" 4. Get PhyRate\n\r"); printf(" 5. System Command\n\r"); printf(" 6. System GetPhyRate\n\r"); printf(" 7. Get All Messages\n\r"); printf(" 8. Set Mac Address\n\r"); printf(" 9. Start ChannelEstimate\n\r"); printf(" a. Get CINR Map\n\r"); printf(" 0. Exit\n\r"); printf("\n\r Input-->"); //c_choice=getc(stdin); scanf("%s",inStr); c_choice=(unsigned char)inStr[0]; if(c_choice=='7'||c_choice=='8') { circle_flag=1; circle_state=0; } send_flag=1; rec_flag=0; uip_len=0; printf(" %c\n\n\r",c_choice); } while (1) { UipPro(); /* 处理uip事件,必须插入到用户程序的循环体中 */ //uip_udp_init(); if(rec_flag)break; } } }
int main(int argc, char *argv[]) { char *s; void Initialise(void); void DoRecognition(void); void DoAlignment(void); if(InitShell(argc,argv,hvite_version,hvite_vc_id)<SUCCESS) HError(3200,"HVite: InitShell failed"); InitMem(); InitLabel(); InitMath(); InitSigP(); InitWave(); InitAudio(); InitVQ(); InitModel(); if(InitParm()<SUCCESS) HError(3200,"HVite: InitParm failed"); InitDict(); InitNet(); InitRec(); InitUtil(); InitAdapt(&xfInfo); InitMap(); if (!InfoPrinted() && NumArgs() == 0) ReportUsage(); if (NumArgs() == 0) Exit(0); SetConfParms(); CreateHeap(&modelHeap, "Model heap", MSTAK, 1, 0.0, 100000, 800000 ); CreateHMMSet(&hset,&modelHeap,TRUE); while (NextArg() == SWITCHARG) { s = GetSwtArg(); if (strlen(s)!=1) HError(3219,"HVite: Bad switch %s; must be single letter",s); switch(s[0]){ case 'a': loadLabels=TRUE; break; case 'b': if (NextArg()!=STRINGARG) HError(3219,"HVite: Utterance boundary word expected"); bndId = GetLabId(GetStrArg(),TRUE); break; case 'c': tmBeam = GetChkedFlt(0.0,1000.0,s); break; case 'd': if (NextArg()!=STRINGARG) HError(3219,"HVite: HMM definition directory expected"); hmmDir = GetStrArg(); break; case 'e': saveAudioOut=TRUE; break; case 'f': states=TRUE; break; case 'g': replay=TRUE; break; case 'i': if (NextArg()!=STRINGARG) HError(3219,"HVite: Output MLF file name expected"); /* if(SaveToMasterfile(GetStrArg())<SUCCESS) HError(3214,"HCopy: Cannot write to MLF"); */ SaveToMasterfile(GetStrArg()); break; case 'k': xfInfo.useInXForm = TRUE; break; case 'j': if (NextArg()!=INTARG) HError(3219,"HVite: No. of files per online adaptation step expected"); update = GetChkedInt(1,256,s); break; case 'l': if (NextArg()!=STRINGARG) HError(3219,"HVite: Label file directory expected"); labDir = GetStrArg(); break; case 'm': models=TRUE; break; case 'n': nToks = GetChkedInt(2,MAX_TOKS,s); if (NextArg()==FLOATARG || NextArg()==INTARG) nTrans = GetChkedInt(1,10000,s); else nTrans = 1; break; case 'o': if (NextArg()!=STRINGARG) HError(3219,"HVite: Output label format expected"); labForm = GetStrArg(); break; case 'p': wordPen = GetChkedFlt(-1000.0,1000.0,s); break; case 'q': if (NextArg()!=STRINGARG) HError(3219,"HVite: Output lattice format expected"); latForm = GetStrArg(); break; case 'r': prScale = GetChkedFlt(0.0,1000.0,s); break; case 's': lmScale = GetChkedFlt(0.0,1000.0,s); break; case 't': genBeam = GetChkedFlt(0,1.0E20,s); if (genBeam == 0.0) genBeam = -LZERO; if (NextArg()==FLOATARG || NextArg()==INTARG) { genBeamInc = GetChkedFlt(0.0,1.0E20,s); genBeamLim = GetChkedFlt(0.0,1.0E20,s); if (genBeamLim < (genBeam + genBeamInc)) { genBeamLim = genBeam; genBeamInc = 0.0; } } else { genBeamInc = 0.0; genBeamLim = genBeam; } break; case 'w': if (NextArg()!=STRINGARG) loadNetworks=TRUE; else { wdNetFn = GetStrArg(); if (strlen(wdNetFn)==0) { wdNetFn=NULL; loadNetworks=TRUE; } } break; case 'u': maxActive = GetChkedInt(0,100000,s); break; case 'v': wordBeam = GetChkedFlt(0,1.0E20,s); if (wordBeam == 0.0) wordBeam = -LZERO; break; case 'x': if (NextArg()!=STRINGARG) HError(3219,"HVite: HMM file extension expected"); hmmExt = GetStrArg(); break; case 'y': if (NextArg()!=STRINGARG) HError(3219,"HVite: Output label file extension expected"); labExt = GetStrArg(); break; case 'z': if (NextArg()!=STRINGARG) HError(3219,"HVite: Lattice output file extension expected"); latExt = GetStrArg(); break; case 'F': if (NextArg() != STRINGARG) HError(3219,"HVite: Data File format expected"); if((dfmt = Str2Format(GetStrArg())) == ALIEN) HError(-3289,"HVite: Warning ALIEN Input file format set"); break; case 'G': if (NextArg() != STRINGARG) HError(3219,"HVite: Source Label File format expected"); if((ifmt = Str2Format(GetStrArg())) == ALIEN) HError(-3289,"HVite: Warning ALIEN Input file format set"); break; case 'H': if (NextArg() != STRINGARG) HError(3219,"HVite: MMF File name expected"); AddMMF(&hset,GetStrArg()); break; case 'I': if (NextArg() != STRINGARG) HError(3219,"HVite: MLF file name expected"); LoadMasterFile(GetStrArg()); break; case 'L': if (NextArg()!=STRINGARG) HError(3219,"HVite: Label/network file directory expected"); labInDir = GetStrArg(); break; case 'P': if (NextArg() != STRINGARG) HError(3219,"HVite: Target Label File format expected"); if((ofmt = Str2Format(GetStrArg())) == ALIEN) HError(-3289,"HVite: Warning ALIEN Label output file format set"); break; case 'B': saveBinary = TRUE; break; case 'T': trace = GetChkedInt(0,511,s); break; case 'X': if (NextArg()!=STRINGARG) HError(3219,"HVite: Input label/network file extension expected"); labInExt = GetStrArg(); break; case 'h': if (NextArg()!=STRINGARG) HError(1,"Speaker name pattern expected"); xfInfo.outSpkrPat = GetStrArg(); if (NextArg()==STRINGARG) { xfInfo.inSpkrPat = GetStrArg(); if (NextArg()==STRINGARG) xfInfo.paSpkrPat = GetStrArg(); } if (NextArg() != SWITCHARG) HError(2319,"HERest: cannot have -h as the last option"); break; case 'E': if (NextArg()!=STRINGARG) HError(2319,"HERest: parent transform directory expected"); xfInfo.usePaXForm = TRUE; xfInfo.paXFormDir = GetStrArg(); if (NextArg()==STRINGARG) xfInfo.paXFormExt = GetStrArg(); if (NextArg() != SWITCHARG) HError(2319,"HVite: cannot have -E as the last option"); break; case 'J': if (NextArg()!=STRINGARG) HError(2319,"HERest: input transform directory expected"); AddInXFormDir(&hset,GetStrArg()); if (NextArg()==STRINGARG) xfInfo.inXFormExt = GetStrArg(); if (NextArg() != SWITCHARG) HError(2319,"HVite: cannot have -J as the last option"); break; case 'K': if (NextArg()!=STRINGARG) HError(2319,"HVite: output transform directory expected"); xfInfo.outXFormDir = GetStrArg(); xfInfo.useOutXForm = TRUE; if (NextArg()==STRINGARG) xfInfo.outXFormExt = GetStrArg(); if (NextArg() != SWITCHARG) HError(2319,"HVite: cannot have -K as the last option"); break; default: HError(3219,"HVite: Unknown switch %s",s); } } if (NextArg()!=STRINGARG) HError(3219,"HVite: Dictionary file name expected"); dictFn = GetStrArg(); if (NextArg()!=STRINGARG) HError(3219,"HVite: HMM list file name expected"); hmmListFn = GetStrArg(); #ifndef PHNALG if ((states || models) && nToks>1) HError(3230,"HVite: Alignment using multiple tokens is not supported"); #endif if (NumArgs()==0 && wdNetFn==NULL) HError(3230,"HVite: Network must be specified for recognition from audio"); if (loadNetworks && loadLabels) HError(3230,"HVite: Must choose either alignment from network or labels"); if (nToks>1 && latExt==NULL && nTrans==1) HError(-3230,"HVite: Performing nbest recognition with no nbest output"); if (nToks > 1 && latExt != NULL && nTrans > 1) HError(-3230,"HVite: Performing nbest recognition with 1-best and latttices output"); if ((update>0) && (!xfInfo.useOutXForm)) HError(3230,"HVite: Must use -K option with incremental adaptation"); Initialise(); /* Process the data */ if (wdNetFn==NULL) DoAlignment(); else DoRecognition(); /* Free up and we are done */ if (trace & T_MEM) { printf("Memory State on Completion\n"); PrintAllHeapStats(); } DeleteVRecInfo(vri); ResetHeap(&netHeap); FreePSetInfo(psi); UpdateSpkrStats(&hset,&xfInfo, NULL); ResetHeap(®Heap); ResetHeap(&modelHeap); Exit(0); return (0); /* never reached -- make compiler happy */ }
//初始化网络 void CHorseRaceMainDlg::OnBnClickedButton4() { // TODO: 在此添加控件通知处理程序代码 InitNet(); }