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

📄 fmmodem.~cpp

📁 采用cb平台开以
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "fmModem.h"
#include "UartPort.h"
#include "Gprsproc.h"
#include "GprsNet.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmModem *frmModem;

//volatile unsigned int StTick;
volatile unsigned int OldTick;

unsigned long __stdcall ProcThreadFunc(void   *lpParam);

volatile unsigned char backstate;
volatile unsigned char entimer;
volatile unsigned int crTick;
#define  StTick GetTickCount()
unsigned int proflag;
//---------------------------------------------------------------------------
__fastcall TfrmModem::TfrmModem(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmModem::FormCreate(TObject *Sender)
{
    SPC = new TComm(SPC);
    SPC->OnReceiveData = SPCReceiveData;

    btPortState->Caption="串口关闭";
    CommInition();

    WNetInterfaceInit();
}
//---------------------------------------------------------------------------

extern unsigned char M_NetReset(void);
unsigned long __stdcall ProcThreadFunc(void   *lpParam)
{
    unsigned char cRet;
    if (proflag==2)
    {
        int rtn=M_NetReset();

        if (rtn==N_RESULT_SUCCESS)
        {
            DebugPrint("GPRS模块复位成功\r\n");
        }
        else
        {
            DebugPrint("GPRS模块复位失败\r\n");
        }

        cRet=WNetInit();
        if (cRet==N_RESULT_SUCCESS)
        {
            DebugPrint("GPRS模块初始化成功\r\n");
        }
        else
        {
            DebugPrint("GPRS模块初始化失败\r\n");
        }

    }
    if (proflag==1)
        GPRS_func();
    return 0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmModem::SPCReceiveData(TObject *Sender,void *Buffer,Word BufferLength)
{
    //
    PortReceive((unsigned char *)Buffer,BufferLength);
}

void __fastcall TfrmModem::FormDestroy(TObject *Sender)
{
// 
}
//---------------------------------------------------------------------------
void __fastcall TfrmModem::CommInition(void)
{
    SPC->CommName="COM1";
    SPC->BaudRate=115200;
    SPC->ParityCheck = false;
    SPC->StopBits = _1;
//    SPC->Parity = Even;
    SPC->Outx_XonXoffFlow = false;

    SPC->StartComm();
}

void __fastcall TfrmModem::btOpenGprsClick(TObject *Sender)
{
//
    proflag=1;
    DebugPrint("开启模块\r\n");

    unsigned long procThreadID;
    HANDLE GprsProcHandle = CreateThread(NULL,   0,   ProcThreadFunc,   NULL,   0,   &procThreadID);
    CloseHandle(GprsProcHandle);
}
//---------------------------------------------------------------------------
void __fastcall TfrmModem::btGprsInitionClick(TObject *Sender)
{

    DebugPrint("GPRS初始化...\r\n");
    backstate=0;

    unsigned long InitThreadID;
    HANDLE ModemInitHandle = CreateThread(NULL,   0,   ProcThreadFunc,   NULL,   0,   &InitThreadID);
    CloseHandle(ModemInitHandle);
}

//---------------------------------------------------------------------------

void __fastcall TfrmModem::btPortStateClick(TObject *Sender)
{
    if (btPortState->Caption=="串口关闭")
    {
        btPortState->Caption="串口打开" ;
        SPC->StopComm();
    }
    else
    {
        btPortState->Caption="串口关闭";
        SPC->StartComm();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmModem::btClearClick(TObject *Sender)
{
    mmMsg->Lines->Clear();
}
//---------------------------------------------------------------------------


void __fastcall TfrmModem::btGprsResetClick(TObject *Sender)
{
    proflag=2;
    DebugPrint("GPRS模块复位\r\n");
    
    unsigned long procThreadID;
    HANDLE GprsProcHandle = CreateThread(NULL,   0,   ProcThreadFunc,   NULL,   0,   &procThreadID);
    CloseHandle(GprsProcHandle);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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