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

📄 main.c

📁 LED显示屏控制卡的编程例程
💻 C
字号:
#include <stdio.h>
#include <windows.h>
#include <wingdi.h>
#include <mmsystem.h>
#include "LEDApi.h"

#define OPEN_COM   1
#define OPEN_UDP   2
#define POWER_ON   3
#define POWER_OFF  4
#define SEND_DATA  5

#define WM_LED_NOTIFY  WM_USER+1

#define IP      "192.168.0.99"
#define PORT    6666
#define GROUP   0
#define SCRNO   0

long dev=-1;

int test		= 500;
int modulus		= 500;
int iteration	= 1;

void _stdcall MySend(HWND hWnd)
{
  MakeRoot(ROOT_PLAY,SCREEN_GRAY);
  AddLeaf(100000000);
  LED_SendToScreen(dev,0,0,IP,PORT);
}

long _stdcall initialize(HWND hWnd)
{
  TDeviceParam param;

  LED_Startup();

  param.devType=DEV_UDP;
  param.locPort=8888;
  param.rmtPort=6666;      

  dev=LED_Open(&param,1,(long)hWnd,WM_LED_NOTIFY);

  return dev;
}

void _stdcall destroy(void)
{
  if (dev != -1)
  {
    LED_Close(dev);
    LED_Cleanup();
    dev=-1;
  }
}

int _stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message){
    
    case WM_LED_NOTIFY:

      switch (wParam>>16)
	  {
        case LM_COMPLETE:
        case LM_TIMEOUT:
          destroy();
		  
	      if (initialize(hWnd) == -1)
		  {
            MessageBox(hWnd,"Cannot open connection","Error",MB_OK);
		  }
		  else
		  {
		    MySend(hWnd);
		  }

          break;
	  }

	  break;

	case WM_SHOWWINDOW:
        initialize(hWnd);
	    MySend(hWnd);
	  break;  
    
	case WM_CREATE:
     //if (initialize(hWnd) == -1)
//       MessageBox(hWnd,"Cannot open connection","Error",MB_OK);
     break;

    case WM_DESTROY:
      //destroy();
      LED_Close(dev);
      LED_Cleanup();
      PostQuitMessage(0);
      break;
    
	default: 
	  return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}

int _stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
  MSG      msg;
  WNDCLASS WndClass;
  HWND     window;
  char     buffer[64];
  
  WndClass.cbClsExtra=0;
  WndClass.cbWndExtra=0;
  WndClass.style=CS_HREDRAW|CS_VREDRAW;
  WndClass.lpfnWndProc=(WNDPROC)WndProc;
  WndClass.hbrBackground=GetStockObject(BLACK_BRUSH);
  WndClass.hCursor=LoadCursor(NULL,IDC_CROSS);
  WndClass.hIcon=NULL;
  WndClass.lpszMenuName=NULL;
  WndClass.lpszClassName="LED";
  WndClass.hInstance=hInstance;
  if (!RegisterClass(&WndClass))
  {
    MessageBox(0,"RegisterClass Error!","Message",MB_OK);
    return 0;
  }

  sprintf(buffer, "Test %d", test);

  window=CreateWindowEx(WS_EX_TOPMOST,"LED",buffer,WS_OVERLAPPED|WS_BORDER|WS_CAPTION|WS_SYSMENU|WS_CLIPCHILDREN,0,0,640,240,NULL,NULL,hInstance,NULL);
  
  if (!window)
  {
    MessageBox(0,"CreateWidnow Error!","Message",MB_OK);
    return 0;
  }

  ShowWindow(window,SW_SHOW);
  UpdateWindow(window);

  while(GetMessage(&msg, 0, 0, 0))
  { 
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
  }
  return 0;
}

⌨️ 快捷键说明

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