Сергей пишет:
Могли бы в инструкции написать, что UDP порт на этом устройстве 7777. Не пришлось бы тратить время на анализирование пакетов снифера от андроид-программы! Вот кто-нибудь подсказал бы еще каким образом в Visual Basic можно отправлять команды по UDP? А слабо сделать это устройство с Web-интерфейсом, где просто было бы 4 кнопки и статус пинга устройства? Простому пользователю данного гаджета не очень интересно будет вникать в отправку команд через непростые программы!
На VB не пишу ,но думаю что просто через socket. А на BC6 вообще все просто .Кидаем компонент NMUDP и вперед.Вот вся программа управления.
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//##############################################
//# ТЕСТОВАЯ ПРОГРАММА УПРАВЛЕНИЯ WIFI реле #
//# 23.04.2015 Alex Shipov #
//##############################################
void send_com(AnsiString msg)
{
Form1->NMUDP1->RemoteHost=Form1->Edit1->Text;
Form1->NMUDP1->RemotePort=7777;
msg =msg+ '\r';
Form1->NMUDP1->SendBuffer(msg.c_str(),msg.Length(),msg.Length());
}
//
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//
void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{
//пришли данные в порт отобразим их
char* Buf=new char[NumberBytes];
NMUDP1->ReadBuffer(Buf,NumberBytes,NumberBytes);
Label1->Caption =Buf;
delete [] Buf;
}
//
void __fastcall TForm1::Button2Click(TObject *Sender)
{
send_com("!SetR1_1");
}
//
void __fastcall TForm1::Button3Click(TObject *Sender)
{
send_com("!SetR0_1");
}
//
void __fastcall TForm1::Button5Click(TObject *Sender)
{
send_com("!SetR1_2");
}
//
void __fastcall TForm1::Button4Click(TObject *Sender)
{
send_com("!SetR0_2");
}
//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
send_com("!GetAll");
}
//
Если надо исполняемый файл и исходники :
Программа на BuilderC6