源码家

  • 开发语言:
  • C/C++
  • 源码大小:
  • 0.02M
  • 源码类别:
  • 嵌入式开发
  • 文件格式:
  • .zip

源码介绍

【源码简介】Modbus TCP主从C 例程

Modbus TCP主从C 例程

【源码截图】


【核心源码】

/**
 * @brief Write Request Builder and Sender
 * @param address   Reference Address
 * @param amount    Amount of data to be Written
 * @param func      Modbus Functional Code
 * @param value     Data to Be Written
 */
void mbTcpMaster::_modbus_write(int address, int amount, int func, uint16_t *value)
{
    if(func == MB_FCT_WRITE_SING_OUTPUT || func == MB_FCT_WRITE_SING_REG)
    {
        uint8_t to_send[12];
        _build_header(to_send, address, func);
        to_send[5] = 6;
        to_send[10] = (uint8_t) (value[0] >> 8);
        to_send[11] = (uint8_t) (value[0] & 0x00FF);
        _eth->send(to_send, 12);
    }
    else if(func == MB_FCT_WRITE_MULT_REGS)
    {
        uint8_t to_send[13 2 * amount];
        _build_header(to_send, address, func);
        to_send[5] = (uint8_t) (7 2 * amount);
        to_send[10] = (uint8_t) (amount >> 8);
        to_send[11] = (uint8_t) (amount & 0x00FF);
        to_send[12] = (uint8_t) (2 * amount);
        for(int i = 0; i < amount; i )
        {
            to_send[13 2 * i] = (uint8_t) (value[i] >> 8);
            to_send[14 2 * i] = (uint8_t) (value[i] & 0x00FF);
        }
        _eth->send(to_send, 13 2 * amount);
    }
    else if(func == MB_FCT_WRITE_MULT_COILS)
    {
        uint8_t to_send[14 (amount -1) / 8 ];
        _build_header(to_send, address, func);
        to_send[10] = (uint8_t) (amount >> 8); //Bit Count
        to_send[11] = (uint8_t) (amount & 0x00FF);
        to_send[12] = (uint8_t) ((amount 7) / 8);//Byte Count
        to_send[5]  = (uint8_t) (7 to_send[12]);
        for(int i = 0, idx = 0; i < amount; i )
        {
            idx = 13 (i - 1) / 8;
            if(!(i % 8))
            {
                to_send[idx] = 0;
            }
            to_send[idx] = (uint8_t) (value[i] << (i % 8));
        }
        _eth->send(to_send, 14 (amount - 1) / 8);
    }
}

.
├── MBmemory.cpp
├── MBmemory.h
├── MemInterface.h
├── mbTcpMaster.cpp
├── mbTcpMaster.h
├── mbTcpSlave.cpp
├── mbTcpSlave.h
├── modbus_common.h
├── modbus_exception.h
└── _Modbus TCP主从 C .zip

0 directories, 10 files


  • 商品评价
  • 交易规则
  • 交易流程

  • 发货方式

  • 1、自动:在上方保障服务中标有自动发货的商品,拍下后,将会自动收到来自卖家的商品获取(下载)链接;

    2、手动:未标有自动发货的的商品,拍下后,卖家会收到邮件、短信提醒,也可通过QQ或订单中的电话联系对方。

  • 交易周期

  • 1、源码默认交易周期:自动发货商品为1天,手动发货商品为3天,买家有1次额外延长3天交易周期的权利;

    2、若上述交易周期双方依然无法完成交易,任意一方可发起追加周期(1~7天)的请求,对方同意即可延长。

  • 退款说明

  • 1、描述:源码描述(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、版本不符等);

    2、演示:有演示站时,与实际源码小于95%一致的(但描述中有"不保证完全一样、有变化的可能性"类似显著声明的除外);

    3、发货:手动发货源码,在卖家未发货前,已申请退款的;

    4、安装:免费提供安装服务的源码但卖家不履行的;

    5、收费:额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外);

    6、其他:如质量方面的硬性常规问题等。

    注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。

  • 1注意事项

  • 1、源码家会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全!

    2、源码家无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别;

    3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外);

    4、在没有"无任何正当退款依据"的前提下,商品写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

    5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准);

    6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在互站上所留的QQ、手机号沟通,以防对方不承认自我承诺。

    7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于互站介入快速处理。

  • 互站声明

  • 1、源码家作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

    2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。