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

📄 signalcontrol.~cpp

📁 自己做的一个基于arm7+linux的条码终端系统的源代码
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <Winsock2.h>
#include "SignalControl.h"
#include "TypeDefine.h"
#include "CommandID.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm5 *Form5;
#pragma pack(1)
extern ClientIDInfo CliIDInfo[512];
//---------------------------------------------------------------------------
__fastcall TForm5::TForm5(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm5::BitBtn1Click(TObject *Sender)
{
    SOCKET ServerSocket;
    WSADATA wsaData;
    int iErrorCode;

    struct sockaddr_in Server_IP_Addr,Client_IP_Addr;
    ReqSetIO OutSigSet;
    
    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
    { 
         ShowMessage(AnsiString("信号网络初始化失败!\n"));
         WSACleanup();
    }
    else
    {

    }

    OutSigSet.head.reqType = SET_IO_CMMD_ID;

    OutSigSet.head.cid = CliIDInfo[ClientSelectNum].CliID;
    OutSigSet.head.length = sizeof(ReqSetIO);
    OutSigSet.head.hilength = 0;

    if (OutputSig1->Checked)
    {
       OutSigSet.info.port = 1;
       OutSigSet.info.onoff = 1;
    }
    else
    {
       OutSigSet.info.port = 2;
       OutSigSet.info.onoff = 1;
    }


    Client_IP_Addr.sin_family = AF_INET;
    Client_IP_Addr.sin_port=htons(CLIENT_RECV_SIGNAL_PORT); //监听端口
    Client_IP_Addr.sin_addr.s_addr = CliIDInfo[ClientSelectNum].ClientIP;
    //ShowMessage(CliIDInfo[ClientSelectNum].ClientIP);

    Server_IP_Addr.sin_family = AF_INET;
    Server_IP_Addr.sin_port=htons(CLIENT_SIGNAL_SET_PORT); //监听端口
   // Server_IP_Addr.sin_addr.s_addr=inet_addr("192.168.1.6"); ///本机
   Server_IP_Addr.sin_addr.s_addr = htonl(INADDR_ANY);

    ServerSocket = socket(AF_INET, SOCK_DGRAM, 0);
    //bind(ServerSocket, (struct sockaddr*)&Server_IP_Addr, sizeof(Server_IP_Addr));

    sendto(ServerSocket, (char *)&OutSigSet, sizeof(ReqSetIO), 0,(struct sockaddr *)&Client_IP_Addr,sizeof(struct sockaddr));
    closesocket(ServerSocket);
}
//---------------------------------------------------------------------------
struct SignalGetRespone {
        __u8 type;
        SignalInfo Siganldata;
} SignalRespone;

void __fastcall TForm5::BitBtn3Click(TObject *Sender)
{
    SOCKET ServerSocket;
    WSADATA wsaData;
    int iErrorCode;
    struct sockaddr_in Server_IP_Addr,Client_IP_Addr;
    ReqGetIO OutSigGet;
    int recv_data_len = sizeof(Client_IP_Addr);
    
    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
    { 
         ShowMessage(AnsiString("信号网络初始化失败!\n"));
         WSACleanup();
    }
    else
    {

    }

    if (InputSig1->Checked)
    {
       OutSigGet.port = 1;
    }
    else
    {
       OutSigGet.port = 2;
    }

    OutSigGet.head.reqType = GET_IO_CMMD_ID;
    OutSigGet.head.hilength = 0;
    OutSigGet.head.length = sizeof(ReqGetIO);

    OutSigGet.head.cid = CliIDInfo[ClientSelectNum].CliID;

    Client_IP_Addr.sin_family = AF_INET;
    Client_IP_Addr.sin_port=htons(CLIENT_RECV_SIGNAL_PORT); //监听端口
    Client_IP_Addr.sin_addr.s_addr = CliIDInfo[ClientSelectNum].ClientIP;

    Server_IP_Addr.sin_family = AF_INET;
    Server_IP_Addr.sin_port=htons(CLIENT_SIGNAL_SET_PORT); //监听端口
   // Server_IP_Addr.sin_addr.s_addr=inet_addr("192.168.1.6"); ///本机
   Server_IP_Addr.sin_addr.s_addr = htonl(INADDR_ANY);

    ServerSocket = socket(AF_INET, SOCK_DGRAM, 0);

    sendto(ServerSocket, (char *)&OutSigGet, sizeof(ReqGetIO), 0,(struct sockaddr *)&Client_IP_Addr,sizeof(struct sockaddr));
    recvfrom(ServerSocket,(char *)&SignalRespone,sizeof(struct SignalGetRespone),0,(struct sockaddr*)&Client_IP_Addr,&recv_data_len);

    if (SignalRespone.Siganldata.port == 1)
    {
       if (SignalRespone.Siganldata.onoff = 1)
       {
          InputSig1->Checked = true;
       }
       else
       {
          InputSig1->Checked = false;
       }
    }
    else if (SignalRespone.Siganldata.port == 2)
    {
       if (SignalRespone.Siganldata.onoff = 1)
       {
          InputSig2->Checked = true;
       }
       else
       {
          InputSig2->Checked = false;
       }
    }

    closesocket(ServerSocket);
}
//---------------------------------------------------------------------------

void __fastcall TForm5::BitBtn2Click(TObject *Sender)
{
   Form5->Close();        
}
//---------------------------------------------------------------------------


void __fastcall TForm5::OutputSig1Click(TObject *Sender)
{
   OutputSig2->Checked = false;
}
//---------------------------------------------------------------------------

void __fastcall TForm5::OutputSig2Click(TObject *Sender)
{
  OutputSig1->Checked = false;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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