打印

HotPower农会再次扩大规模通告--建立HotC51共产儿童团

[复制链接]
2135|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2009-2-19 00:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最新建立HotC51共产儿童团

由于菜农HotPower先生感觉论坛蓄水能力不足等问题,

无法大面积灌水浇花,故暂且扩大规模,在EDNChina

建立小组,暂且为:

农会本坛: 21icbbs内的书友会论坛
https://bbs.21ic.com/club/bbs/list.asp?boardid=68

1.裸奔式实时操作系统HotTask51 以后考虑更名为书社小组
http://group.**/1607/
联系:HotPower@126.com

2.HotTask51农会小组
http://group.**/1609/
联系:HotTask51@126.com

3.HotBios公社小组
http://group.**/1610/
联系:HotBios@126.com

4.HotC51共产儿童团
http://group.**/1623/
联系:HotC51@126.com


菜农邀请水友们加入俺的“农村信用合作社”,欢迎大家加入~~~

农会主席菜农HotPower@126.com   2009.2.18于农会大棚


/*-------------------------------------------------------------------------------
    菜农在HotC51共产儿童团成立大会时的演讲报告

    在一个设计优美的程序中,应该多使用COM接口技术及结构、位域和联合之“美化手段”
采用此方法编制出来的程序,从表面上看如同C++程序,它是新语言采用之潮流。
如Java、C#、VB.Net等。
    所以,HotC51共产儿童团将竭力推动此潮流,并将共产火焰然遍“亚非拉”。

HotC51共产儿童团团章:

  共享,共享,再共享。学习,学习,再学习。
  开源,开源,再开源。灌水,灌水,再灌水。

HotC51共产儿童团入门第一课: 《COM接口技术在C51之实现和应用》见程序HotC51.C/H
HotC51共产儿童团见面礼:     《Keil C51红杏出墙记》(情人节裸奔版)

HotTask51农会主席兼HotC51儿童团团长 HotPower@126.com 2009.2.18 于菜地
-------------------------------------------------------------------------------*/

相关链接:https://bbs.21ic.com/upfiles/img/20092/2009218234953358.rar

相关帖子

沙发
computer00| | 2009-2-19 00:36 | 只看该作者

晕...现在正在抗旱,面积越大,灌溉越困难啊...深有体会...

使用特权

评论回复
板凳
HotC51| | 2009-2-19 00:37 | 只看该作者

俺任HotC51共产儿童团队长,主要负责对C51的美容工作

/*---------------------------------------------
               HotCOM V1.0
菜农HotPower  2008.6.25 11:08 开始编写HotCOM
----------------------------------------------*/
#include "HotCom.h"


void HotCOMDemo(void)
{
TI_IREG __ASMCodeArray[]=
{//下面的"数据"实际为汇编代码
__asm_abdst__(ABDST_AR2_0, ABDST_AR2_3),
__asm_abdst__(ABDST_AR3_0, ABDST_AR2_3),
__asm_abdst__(ABDST_AR4_0, ABDST_AR2_3),
__asm_abdst__(ABDST_AR5_0, ABDST_AR2_3),
    __asm_return__(),
};

TI_IREG __intASMCodeArray[]=
{//下面的"数据"实际为汇编代码
    __asm_push__(ASMCODE_REGS_AR6),
    __asm_push__(ASMCODE_REGS_AR7),
    __asm_frame__(-15),
    __asm_char_SetACC__(0x88),
    __asm_frame__(15),
    __asm_pop__(ASMCODE_REGS_AR7),
    __asm_pop__(ASMCODE_REGS_AR6),
    __asm_return__(),
};

TI_IREG __ASMCodeArrayInt[]=
{//下面的"数据"实际为汇编代码
    __asm_push__(ASMCODE_REGS_AR6),
    __asm_push__(ASMCODE_REGS_AR7),
    __asm_frame__(-15),
    __asm_char_SetACC__(0x88),
    __asm_frame__(15),
    __asm_pop__(ASMCODE_REGS_AR7),
    __asm_pop__(ASMCODE_REGS_AR6),
    __asm_return__(),
};

TI_IREG __intASMCodeArrayInt[]=
{//下面的"数据"实际为汇编代码
    __asm_push__(ASMCODE_REGS_AR6),
    __asm_push__(ASMCODE_REGS_AR7),
    __asm_frame__(-15),
    __asm_char_SetACC__(0x88),
    __asm_frame__(15),
    __asm_pop__(ASMCODE_REGS_AR7),
    __asm_pop__(ASMCODE_REGS_AR6),
    __asm_return__(),
};

TI_IREG result, parameter = 0x1234;
//申请COM接口指针
IHotAsmArrayCom *AsmArrayCom = new (IHotAsmArrayCom*)[sizeof(IHotAsmArrayCom)];
//挂接汇编数组代码到COM接口
    AsmArrayCom->lpVtbl->comASMArray = (ASMCodeArray_FPtr)__ASMCodeArray;
    AsmArrayCom->lpVtbl->comintASMArray = (intASMCodeArray_FPtr)__intASMCodeArray;
    AsmArrayCom->lpVtbl->comASMArrayInt = (ASMCodeArrayInt_FPtr)__ASMCodeArrayInt;
    AsmArrayCom->lpVtbl->comintASMArrayInt = (intASMCodeArrayInt_FPtr)__intASMCodeArrayInt;
//通过COM访问汇编数组中的汇编代码
    AsmArrayCom->lpVtbl->comASMArray();
    result = AsmArrayCom->lpVtbl->comintASMArray();
    AsmArrayCom->lpVtbl->comASMArrayInt(0x1234);
    result = AsmArrayCom->lpVtbl->comintASMArrayInt(0x1234);
    delete AsmArrayCom;
}

使用特权

评论回复
地板
HotC51| | 2009-2-19 00:44 | 只看该作者

天大旱人大干~~~

#ifndef _HOTCOMM_INTERFACE_H   
#define _HOTCOMM_INTERFACE_H

#if defined(INCLUDE_AFTER_WINDOWS_H) && !defined(_INC_WINDOWS)
#error  This header must be included before utility.h and formatio.h
#error  because it includes cviauto.h which includes Windows SDK headers.
#endif /* INCLUDE_AFTER_WINDOWS_H */

#include "common.h"        


enum HOTCOMM_BINDCTRLCOMMANDEnum
{    
    HOTCOMM_SYSTEM_COMMAND_PASSWORD         = 1,//设置密码,控件与串口无关
    HOTCOMM_COMMPORT_COMMAND_PASSWORD         = 2,//设置密码,控件与串口有关
    HOTCOMM_SYSTEM_COMMAND_CLEARTEXTBOX        = 3,//清空文本框, 控件与串口无关 
    HOTCOMM_COMMPORT_COMMAND_CLEARTEXTBOX    = 4, //清空文本框, 控件与串口无关 
    
    HOTCOMM_SYSTEM_COMMAND_POWERBUTTON         = 9, //控件与串口有关 
    HOTCOMM_COMMPORT_COMMAND_PUSHBUTTON     = 10, //控件与串口有关 
    
    HOTCOMM_SYSTEM_COMMAND_TRAYICON         = 9999,//安装托盘图标
};
/*--------------------------------------------------------------------------------------------
    HotComm将应用COM接口技术实现对控件的动态(静态)绑定
--------------------------------------------------------------------------------------------*/

#define HotComm_BindCtrl_MaxCount 250//

//HotComm的类COM接口

typedef struct
{
    unsigned int CommPort;        //串口号
    int        Panel;                  //面板
    int        Control;              //控件
    int     Attribute;           //属性
    int     AttributeValue;      //属性值
    int        Command;            //执行命令    
    int        Event;              //事件
    char   *Message;              //消息
    char   *Buffer;                  //备用
}HotComm_BindCtrlArrayStruct, *HotComm_BindCtrlArrayStructPtr;

typedef int  (CVICALLBACK *HotComm_BindCtrlCallbackPtr) (int Panel, int Control, int Event, void *BindCtrlStructPtr, int EventData1, int EventData2);

typedef struct
{//注意BindCtrlArray[HotComm_BindCtrl_MaxCount - 1]被系统占用!!!
    HotComm_BindCtrlArrayStruct BindCtrlArray[HotComm_BindCtrl_MaxCount];//通用绑定接口结构 数组
    HotComm_BindCtrlCallbackPtr  BindCtrlCallBackFunction;//通用回调函数
    HotComm_BindCtrlArrayStructPtr BindCtrlCallBackData;//通用回调数据(在EVENT_RIGHT_DOUBLE_CLICK时**动态绑定控件)
    int     BindCount;//实际绑定个数
    int     BindMaxCount;//最大绑定个数
}HotComm_BindCtrlStruct;

typedef interface IHotComm_BindCtrl IHotComm_BindCtrl;


interface IHotComm_BindCtrl
{
    CONST_VTBL struct IHotComm_BindCtrlVtbl  *lpVtbl;
    HotComm_BindCtrlStruct *HotComm_BindCtrlPtr;
};




//HotComm的类COM接口的控件绑定类接口
//typedef interface IHotComm_BindCtrl IHotComm_BindCtrl;
typedef struct IHotComm_BindCtrlVtbl
{
    BEGIN_INTERFACE
        
//1. 通用绑定接口结构参数测试函数                  
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *GetBindCtrlCount)(int Panel, int Control, int * Count, int * MaxCount);
//2. 通用绑定接口结构数组参数测试函数        
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *GetBindCtrlVal)(HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, 
                                          unsigned int *CommPort, int *Panel, int *Control, 
                                          int *Attribute, int *AttributeValue,
                                          int *Command, int *Event, char *Message, char *Buffer);
//3. 通用绑定接口结构数组参数设置函数        
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *SetBindCtrlVal)(HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, 
                                          unsigned int CommPort, int Panel, int Control, 
                                          int Attribute, int AttributeValue,
                                          int Command, int Event, char *Message, char *Buffer);
//4. 通用取结构指针函数
    HotComm_BindCtrlArrayStructPtr (STDMETHODCALLTYPE __RPC_FAR *GetBindCtrlStructPtr)(int Panel, int Control);

//5. 创建绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *CreatBindCtrlVal)(unsigned int CommPort, int Panel, int Control, 
                                            int Attribute, int AttributeValue,
                                            int Command, int Event, char *Message, char *Buffer);
//6. 在打开串口后才开始绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlCommPortPassword)(unsigned int CommPort, int Panel, int Control, 
                                                                    const char *Password, const char *NewPassword);

//7. 常绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlSystemPassword)(int Panel, int Control, 
                                                                    const char *Password, const char *NewPassword);

//8. 在打开串口后才开始绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlCommPortClearTextBox)(unsigned int CommPort, int CommandPanel, int CommandControl, 
                                                                                               int TextPanel, int TextControl); 
    
//9. 常绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlSystemClearTextBox)(int CommandPanel, int CommandControl, 
                                                                      int TextPanel, int TextControl);  
    
//10. 在打开串口后才开始绑定
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlCommPortPushButton)(unsigned int CommPort, int CommandPanel, int CommandControl, 
                                                                           int LedPanel, int LedControl, 
                                                                           int LedInverseint, int Escape);
//11. 常绑定系统托盘
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlSystemTrayIcon)(int MainPanel, int Panel, int Control, const char *TrayCaption, 
                                                         const char *ShowIconFileName, const char *HideIconFileName);
//12. 绑定垂直滚动条 
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlVscrollBar)(int CommPort, int Panel, int Control);//绑定垂直滚动条

//13. 绑定OPEN开关
    HRESULT (STDMETHODCALLTYPE __RPC_FAR *BindCtrlSystemPowerButton) (int Panel, int Control, 
                                                   int LedPanel, int LedControl, void *HookFunction);
    
    END_INTERFACE
} IHotComm_BindCtrlVtbl;


//HotComm系统内部动态绑定控件事件回调函数!!!(不对外)
int CVICALLBACK HotComm_BindCtrlCallBackFunction (int Panel, int Control, int Event,
        HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, int EventData1, int EventData2);

//HotComm系统内部动态绑定托盘事件回调函数!!!(不对外)
int CVICALLBACK HotComm_BindTraylCallBackFunction (int Handle, int Event, int EventData);


HRESULT CVIFUNC HotComm_InterfaceInit (void);
HRESULT CVIFUNC HotComm_InterfaceQuit (void);

//1. 通用绑定接口结构参数测试函数                  
HRESULT CVIFUNC HotComm_GetBindCtrlCount (int Panel, int Control, int * Count, int * MaxCount);
//2. 通用绑定接口结构数组参数测试函数        
HRESULT CVIFUNC HotComm_GetBindCtrlVal (HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, 
                                          unsigned int *CommPort, int *Panel, int *Control, 
                                          int *Attribute, int *AttributeValue,
                                          int *Command, int *Event, char *Message, char *Buffer);
//3. 通用绑定接口结构数组参数设置函数        
HRESULT CVIFUNC HotComm_SetBindCtrlVal (HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, 
                                          unsigned int CommPort, int Panel, int Control, 
                                          int Attribute, int AttributeValue,
                                          int Command, int Event, char *Message, char *Buffer);
//4. 通用取结构指针函数
HotComm_BindCtrlArrayStructPtr CVIFUNC HotComm_GetBindCtrlStructPtr (int Panel, int Control);

//5. 创建绑定
HRESULT CVIFUNC HotComm_CreatBindCtrlVal (unsigned int CommPort, int Panel, int Control, 
                                            int Attribute, int AttributeValue,
                                            int Command, int Event, char *Message, char *Buffer);
//6. 在打开串口后才开始绑定
HRESULT CVIFUNC HotComm_BindCtrlCommPortPassword (unsigned int CommPort, int Panel, int Control,
                                                  const char *Password, const char *NewPassword);

//7. 常绑定
HRESULT CVIFUNC HotComm_BindCtrlSystemPassword (int Panel, int Control, 
                                                  const char *Password, const char *NewPassword);

//8. 在打开串口后才开始绑定
HRESULT CVIFUNC HotComm_BindCtrlCommPortClearTextBox (unsigned int CommPort, int CommandPanel, int CommandControl, 
                                                                       int TextPanel, int TextControl);

//9. 常绑定
HRESULT CVIFUNC HotComm_BindCtrlSystemClearTextBox (int CommandPanel, int CommandControl, 
                                                                       int TextPanel, int TextControl);
//10. 在打开串口后才开始绑定
HRESULT CVIFUNC HotComm_BindCtrlCommPortPushButton (unsigned int CommPort, int CommandPanel, int CommandControl, 
                                                                           int LedPanel, int LedControl, 
                                                                           int LedInverseint, int Escape);




//11. 常绑定系统托盘
HRESULT CVIFUNC HotComm_BindCtrlSystemTrayIcon (int MainPanel, int Panel, int Control, 
                                                         const char *TrayCaption, 
                                                         const char *ShowIconFileName, 
                                                         const char *HideIconFileName);

//12. 绑定垂直滚动条 
HRESULT CVIFUNC HotComm_BindCtrlVscrollBar (int CommPort, int Panel, int Control);

//13. 绑定OPEN开关
HRESULT CVIFUNC HotComm_BindCtrlSystemPowerButton (int Panel, int Control, 
                                                   int LedPanel, int LedControl, void *HookFunction);


HRESULT CVIFUNC HotComm_InstallSysTrayIconMenu (HotComm_BindCtrlArrayStruct *BindCtrlStructPtr, int mode);

HRESULT CVIFUNC HotComm_OpenInternetExplorer (const char* String);

extern IHotComm_BindCtrl *HotComm_BindCtrlInterface;


HRESULT CVIFUNC HotComm_NBGetAdapterMaxCount (int *Count);
HRESULT CVIFUNC HotComm_NBGetAdapterAddress (int Lana_num, char *String);
HRESULT CVIFUNC HotComm_SystemLicenses (void);
HRESULT CVIFUNC HotComm_CheckLicenses (char *String);

#define   HDC_FIXED             0x3F6   
#define   HDC_FIXED_IRQ         0x02 

#define   HDC_SDH               0x1F6 
#define   HDC_STATUS            0x1F7   
#define   HDC_COMMAND           0x1F7
#define   HDC_DATA                 0x1F0
#define   HDC_COMMAND_READPAR   0xEC
#define   HDC_STATUS_BUSY       0x80   

HRESULT CVIFUNC HotComm_ReadIDE (WORD *pwDiskData);

#ifdef __cplusplus
    extern "C" {
#endif


#ifdef __cplusplus
    }
#endif
#endif /* _HOTCOMM_INTERFACE_H */

使用特权

评论回复
5
hq_y| | 2009-2-19 00:53 | 只看该作者

晕,这么晚了,注意身体啊~~~~~~~~~~`

使用特权

评论回复
6
HotC51| | 2009-2-19 00:59 | 只看该作者

今天很开心~~~儿童团员协助验证了“套圈法”的实现~

使用特权

评论回复
7
kanprin| | 2009-2-19 08:20 | 只看该作者

不会C++怎么办啊

使用特权

评论回复
8
yewuyi| | 2009-2-19 08:39 | 只看该作者

这么都组织都是干什么的?

使用特权

评论回复
9
HotC51| | 2009-2-19 08:42 | 只看该作者

不会C++怎么办---COM接口技术是C人用来骂C++人“垃圾”的武器

~~~

使用特权

评论回复
10
tyw| | 2009-2-19 09:42 | 只看该作者

私自组团,去GA申报过吗?没有就快"躲猫猫",哈哈,大盖猫来喽

使用特权

评论回复
11
xwj| | 2009-2-19 09:52 | 只看该作者

今天你躲猫猫了吗?

使用特权

评论回复
12
温知新| | 2009-2-19 09:53 | 只看该作者

哈哈.非法集会,组织...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1544

主题

21705

帖子

506

粉丝