⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是一个用c语言和MiniGUI工具编写的数据采集服务器程序
💻 C
字号:
#include "main.h"#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <signal.h>#include "mainmenu.h"#include "status.h"#include "setdlg.h"#include "aboutdlg.h"#include "setserv.h"#include "loadsch.h"#include "setdsch.h"#include "setctrlsch.h"#include "setbsch.h"#include "setphsch.h"#include "sockclient.h"#include "softkb.h"HWND hMainWnd;HWND hIMEWnd;char serv_addr[16];    //server addrint serv_port=1088;          //server portint sockfd=-1;struct sockaddr_in addr;char *st1;char *st2;BOOL   belink;        //是否联网模式pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;     //定义状态读写互斥锁pthread_cond_t cond = PTHREAD_COND_INITIALIZER;       //定义条件变量HWND hclient;         //状态框句柄pthread_t get_status_id, set_status_id, get_cmd_id, conn_serv_id, ctrol_sys_id;      //状态收集等子线程BITMAP bmp1;BITMAP bmp2;BITMAP bmp3;BITMAP bmp4;HWND bmp; int MainWinProc(HWND hwnd, int message, WPARAM wParam, LPARAM lParam){	HDC hdc;	switch(message){		case MSG_CREATE:			{						LoadBitmap(HDC_SCREEN, &bmp1, "./image/bitmap.bmp");			LoadBitmap(HDC_SCREEN, &bmp2, "./image/bit1.bmp");			hclient=CurrentStatus(hwnd);			strcpy(serv_addr, "192.168.2.250");			st1=(char*)malloc(8);			memset(st1, '\0', 8);			st2=(char*)malloc(8);			memset(st2, '\0', 8);						hIMEWnd = GBIMEWindow(hwnd);			pthread_mutex_init(&mutex, NULL);//创建线程			if((pthread_create(&get_status_id, NULL, (void*)get_sys_status, NULL)) != 0)			MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK);			if((pthread_create(&set_status_id, NULL, (void*)set_sys_status, NULL)) != 0)			MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK);			if((pthread_create(&get_cmd_id, NULL, (void*)get_cmd, NULL)) != 0)			MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK);						signal(SIGPIPE, SIG_IGN);			SetTimer(hwnd, 0, 3000);			break;			}		case MSG_TIMER:						break;		case MSG_SERV_CHANGE:			if(sockfd > 0)				close(sockfd);			initsocket();			break;					case MSG_PAINT:			break;				case MSG_COMMAND:			switch(wParam){					case IDM_SET_SCHEME:						initsetdlg(hwnd);						break;					case IDM_ABOUT_SYS:						initaboutdlg(hwnd);						break;					case IDM_SET_SERVER:						setservdlg(hwnd);						break;					case IDM_LOAD_SCHEME:						loadschdlg(hwnd);						break;					case IDM_SET_DAY:						setdschdlg(hwnd);						break;					case IDM_SET_CTRL:						setctrlschdlg(hwnd);						break;					case IDM_SET_BASE:						setbschdlg(hwnd);						break;					case IDM_SET_PHR:						setphschdlg(hwnd);						break;										     }			break;					case MSG_CLOSE:			KillTimer(hwnd,0);						MiniGUIExtCleanUp ();			if(sockfd > 0) close(sockfd);			pthread_cancel(set_status_id);			pthread_cancel(get_status_id);			pthread_cancel(get_cmd_id);			DestroyMainWindow(hwnd);			PostQuitMessage(hwnd);			return 0;		}	return DefaultMainWinProc(hwnd, message, wParam, lParam);	}int MiniGUIMain(int argc, const char* argv[]){			HMENU mainmenu, submenu;	MSG Msg;	MAINWINCREATE CreateInfo;	CreateInfo.dwStyle=WS_VISIBLE | WS_CAPTION ;	CreateInfo.dwExStyle=WS_EX_NONE;	CreateInfo.spCaption="keli-arm";	CreateInfo.hMenu=CreateMainMenu(mainmenu, submenu);	CreateInfo.hCursor=GetSystemCursor(0);	CreateInfo.hIcon=0;	CreateInfo.MainWindowProc=MainWinProc;	CreateInfo.lx=0;	CreateInfo.ty=0;	CreateInfo.rx=620;	CreateInfo.by=460;	CreateInfo.iBkColor=COLOR_lightwhite;	CreateInfo.dwAddData=0;	CreateInfo.hHosting=HWND_DESKTOP;	hMainWnd=CreateMainWindow(&CreateInfo);	if(hMainWnd==HWND_INVALID)		return -1;	ShowWindow(hMainWnd,SW_SHOWNORMAL);    if (!InitMiniGUIExt())     {        return 2;    }				while(GetMessage(&Msg, hMainWnd)){	TranslateMessage(&Msg);	DispatchMessage(&Msg);	}		MainWindowThreadCleanup(hMainWnd);	return 0;}#ifndef _MGRM_PROCESSES#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -