精华内容
下载资源
问答
  • 方法一     协议栈版本:ZStack-2007(ZStack-CC2530-2.5.1a)。 ...不过我们可以通过修改协议栈内容来同时使用两个串口。   首先来看一下为什么ZStack只能使用一个串口(): MT_UART.h头文

    方法一

     

     

    协议栈版本:ZStack-2007(ZStack-CC2530-2.5.1a)。

    芯片型号:CC2530。

     

     

    我们在使用ZigBee时通常只用到一个串口,但是在某些情况下希望同时使用两个串口。ZStack默认只能使用一个串口。不过我们可以通过修改协议栈内容来同时使用两个串口。

     

    首先来看一下为什么ZStack只能使用一个串口():

    MT_UART.h头文件中:

    #if defined (MT_UART_DEFAULT_PORT)

     HalUARTOpen (MT_UART_DEFAULT_PORT, &uartConfig);

    #else

      /*Silence IAR compiler warning */

     (void)uartConfig;

    #endif

     

    //定义了ZTOOL_P1

    #if defined (ZTOOL_P1) || defined(ZTOOL_P2)      //DMA方式

     #define MT_UART_DEFAULT_PORT          ZTOOL_PORT

    #elif defined (ZAPP_P1) || defined(ZAPP_P2) //ISR方式

     #define MT_UART_DEFAULT_PORT          ZAPP_PORT

    #endif

     

     

    #if defined (ZTOOL_P1)

     #define ZTOOL_PORT  HAL_UART_PORT_0//串口0

    #elif defined (ZTOOL_P2)

     #define ZTOOL_PORT HAL_UART_PORT_1//串口1

    #else

     #undef ZTOOL_PORT

    #endif

     

    该头文件中定义了一个默认UART串口端口,从第二段  #if defined (ZTOOL_P1) ||defined (ZTOOL_P2)      //DMA方式

    开始,由于使用了if-else结构,如果定义了ZTOOL_P1或者ZTOOL_P2,那么默认端口为ZTOOL_PORT,在这种情况下ISR方式就不会再出现了。如果没有使用DMA方式,并且定义了ZAPP_P1或者ZAPP_P2,则采用ISR方式。

    接下来看第三段:如果定义了ZTOOL_P1,则ZTOOL_PORT为HAL_UART_PORT_0串口0,否则如果定义了ZTOOL_P2,则为串口1。该结构仍采用了if-else结构,也就是说使用了串口0就不会再用到串口1。

    那么我们可以得出这样的结论,使用了DMA方式就不能再用ISR方式,使用了串口0就不能再用串口1。当然这只是默认串口,默认串口只能有一个。这个似乎和使用两个串口没什么关系,只是使用两个串口就不能再采用默认串口这一说了。

     

    下面再看hal_board_cfg.h中的这样一段:

    //如果在没有定义HAL_UART且定义了ZAPP_P、ZAPP_P2、ZTOOL_P1、ZTOOL_P2那么定义HAL_UARTTRUE;否则定义HAL_UART FALSE

    #ifndef HAL_UART

    #if (defined ZAPP_P1) || (defined ZAPP_P2) || (defined ZTOOL_P1) ||(defined ZTOOL_P2)

    #define HAL_UART TRUE

    #else

    #define HAL_UART FALSE

    #endif

    #endif

     

     

    //如果HAL_UART为真并且没有定义HAL_UART_DMA,并且HAL_DMA为真并且定义了ZAPP_P2、 ZTOOL_P2那么 定义HAL_UART_DMA  2否则定义HAL_UART_DMA  1

    #if HAL_UART

    #ifndef HAL_UART_DMA

    #if HAL_DMA

    #if (defined ZAPP_P2) || (defined ZTOOL_P2)

    #define HAL_UART_DMA  2

    #else

    #define HAL_UART_DMA  1

    #endif

    #else

    #define HAL_UART_DMA  0

    #endif

    #endif

     

     

    #ifndef HAL_UART_ISR

    #if HAL_UART_DMA        //Default preference for DMA over ISR.

    #define HAL_UART_ISR  0

    #elif (defined ZAPP_P2) || (defined ZTOOL_P2)

    #define HAL_UART_ISR  2

    #else

    #define HAL_UART_ISR  1

    #endif

    #endif

     

    第一段的意思是如果定义了ZTOOL_P1等四个当中的一个,那么就HAL_UART即为真。即串口可用。

    在该头文件上仔细找可以找到该句:

    #ifndef HAL_DMA

    #define HAL_DMA TRUE

    #endif

    那么对于第二段,我们可以得出这样的结论:只要是定义了ZTOOL_P1等四个当中的一个,那么HAL_UART_DMA的逻辑值就为1否则为0。

     

    而对于第三段只要HAL_UART_DMA的逻辑值为1,则ISR不可用,注释意为默认DMA优先级高于ISR。

    所以对于ZStack来说默认只能使用一个串口。那么想要使用两个串口该怎么办呢?当然是要修改上面的代码了。

     

    ZigBee使用两个串口的方法:

     

    修改hal_board_cfg.h中的第二三段代码如下:

     

    #if HAL_UART

    //Always prefer to use DMA over ISR.

    #if HAL_DMA

    #ifndef HAL_UART_DMA

    #if (defined ZAPP_P1)||(defined ZTOOL_P1)

    #define HAL_UART_DMA 1

    #elif(defined ZAPP_P2)||(defined ZTOOL_P2)

    #define HAL_UART_DMA 2

    #else

    #define HAL_UART_DMA 1

    #endif

    #endif

    #define HAL_UART_ISR 2

    #else

    #ifndef HAL_UART_ISR

    #if(defined ZAPP_P1)||(defined ZTOOL_P1)

    #define HAL_UART_ISR 1

    #elif(defined ZAPP_P2)||(defined ZTOOL_P2)

    #define HAL_UART_ISR 2

    #else

    #define HAL_UART_ISR 1

    #endif

    #endif

    #define HAL_UART_DMA 0

    #endif

    (该段代码摘录自网上,使用时定义ZATOOL_P1即可,这样选择了串口0DMA方式,串口1中断方式,如果定义ZAPP_P2可能会产生逻辑问题)

    修改后意为如果使用了DMA,则定义相应的通道为DMA方式,同时定义串口1采用中断方式,如果没有定义DMA,则使用中断方式。

    修改完以后协议栈已支持同时使用两个串口,但是想要使用还得对串口进行初始化。自带的串口初始化不作改动,默认串口0采用DMA方式,另外需要写一个串口1的初始化函数。函数如下:

    void MT_Uart1Init ()

    {

     halUARTCfg_t uartConfig1;

     

      /*Initialize APP ID */

     App_TaskID = 0;

     

      /*UART Configuration */

     uartConfig1.configured           =TRUE;

     uartConfig1.baudRate             =MT_UART_DEFAULT_BAUDRATE;

     uartConfig1.flowControl          =MT_UART_DEFAULT_OVERFLOW;

     uartConfig1.flowControlThreshold = 32;

     uartConfig1.rx.maxBufSize        =32;

     uartConfig1.tx.maxBufSize        =32;

     uartConfig1.idleTimeout          =6;

     uartConfig1.intEnable            =TRUE;

     uartConfig1.callBackFunc         =MT_UartProcessZToolData;

     

      /*Start UART */

     HalUARTOpen (HAL_UART_PORT_1, &uartConfig1);

      /*Silence IAR compiler warning */

     

      /*Initialize for ZApp */

    #if defined (ZAPP_P1) || defined (ZAPP_P2)

      /*Default max bytes that ZAPP can take */

     MT_UartMaxZAppBufLen  = 1;

     MT_UartZAppRxStatus   =MT_UART_ZAPP_RX_READY;

    #endif

     

    }

    注意红色字体部分:  HalUARTOpen(HAL_UART_PORT_1, &uartConfig1);

    初始化打开串口为HAL_UART_PORT_1,其他参数有结构体uartConfig1传给回调函数。当然还需要将该初始化注册到用户应用层。即在用户应用层初始化函数中(例:void SampleApp_Init( uint8 task_id )注:不同的程序应用层初始化函数不同)调用该函数即可。

     

    当然还需要回调函数。两个串口初始化均采用同样的回调函数,测试显示只能使用一个回调函数。所以对于串口事件均指定一个处理事件,如果想要两个串口分别对应不同的串口事件,则做如下修改:

     

           if (pMsg)

           {

             /* Fill up what we can */

             if(port == HAL_UART_PORT_0)

             {

               pMsg->hdr.event = CMD_SERIAL_MSG;

             }

             else

             {

               pMsg->hdr.event = CMD_SERIAL1_MSG;

             }

             pMsg->msg = (uint8*)(pMsg+1);

             pMsg->msg[MT_RPC_POS_LEN] = LEN_Token;

             state = CMD_STATE1;

           }

     

    在用户应用层加上相应的触发事件及处理函数即可。

    由于板子还没有出来,还没有进行测试。

    板子测试成功。

     

     

     

     

     

     

     

     

    方法二

     

     

    前两天因为做东西需要在zstack协议栈下同时使用两个串口,通过参考网上的一些资料,经过一段时间的折腾,算是搞定了,现在把详细的配置方法贴出来跟大家分享,如果有问题的话也希望大家指出来共同进步。

     

     

     

    1、在hal_board_cfg.h中,更改#define HAL_UART_ISR  0为#define HAL_UART_ISR 2,使用uart1为中断方式,在P1口,因此,全局来看,串口0为DMA方式,在P0口,串口1为ISR方式,在P1口。

     

     

     

     

     

    2、更改MT_UARTInit函数中开启串口程序部分如下:

     

     

     

    #if defined(MT_UART_DEFAULT_PORT)

     

      HalUARTOpen (MT_UART_DEFAULT_PORT,&uartConfig);

     

      HalUARTOpen (HAL_UART_PORT_1,&uartConfig);

     

    #else

     

     

     

     

     

    3、关于分别处理两个串口的数据问题:

     

    在MT_UART.c中加入串口区分,在MT_UartProcessZToolData函数中登记串口事件时加入串口区分,如下:

     

    if(port==0)

     

        pMsg->hdr.event = CMD_SERIAL_MSG_0;

     

      else if(port==1)

     

        pMsg->hdr.event = CMD_SERIAL_MSG_1;

     

    CMD_SERIAL_MSG_0为串口0数据处理,CMD_SERIAL_MSG_1为串口1数据处理,需要更改相应的宏定义,在MT.h中更改

     

    /* Message CommandIDs */

     

    #defineCMD_SERIAL_MSG_0                  0x01

     

    #defineCMD_SERIAL_MSG_1                  0x07

     

     

     

     

     

     

     

    4、更改MT_TASK.c中MT_ProcessIncomingCommand函数在switch语句中加入串口区分,如下

     

    switch (msg->hdr.event )

     

      {

     

        case CMD_SERIAL_MSG_0:

     

          MT_ProcessIncoming(msg->msg);

     

          break;

     

         

     

        case CMD_SERIAL_MSG_1:

     

          MT_ProcessIncoming(msg->msg);

     

          break;

     

     

     

     

     

     

     

     

     

    5、用户可以通过修改SampleApp.c中的SampleApp_ProcessEvent函数来实现处理两个不同串口的数据,如下:

     

    switch (MSGpkt->hdr.event )

     

          {

     

            case CMD_SERIAL_MSG_0:  

     

            SampleApp_SerialCMD((mtOSALSerialData_t *)MSGpkt);

     

             break;

     

            case CMD_SERIAL_MSG_1: 

     

             SampleApp_SerialCMD((mtOSALSerialData_t*)MSGpkt);

     

             break;

     

    串口处理函数可根据网蜂教程自行编写实现相应的功能。

     

     

     

     

     

     

     

    好啦,到这里就配置完成了,希望能改需要的朋友一些帮助,同时如果有问题的话还请各位不吝赐教,批评指正,共同进步。

    展开全文
  • cc254x之修改协议栈按键io

    千次阅读 2016-06-04 21:32:33
    协议栈demo中有按键的处理流程,所以项目中可以完全利用协议栈的流程实现自己的按键操作,如果自己硬件的io和协议栈对应开发板的io不一致,则需要修改按键io定义的文件。  下面以协议栈1.4为例,实现按键2 从p0.1...

            协议栈demo中有按键的处理流程,所以项目中可以完全利用协议栈的流程实现自己的按键操作,如果自己硬件的io和协议栈对应开发板的io不一致,则需要修改按键io定义的文件。


             下面以协议栈1.4为例,实现按键2 从p0.1到p1.2的修改:


              首先找到按键定义的文件Hal_key.c          一定要选对自己芯片对应的文件,详细修改过程如下:


    一、添加port1的中断标志寄存器  宏定义

    #define HAL_KEY_CPU_PORT_1_IF P1IF
    


    二、修改按键2   由p0.1到p1.2定义

    #if defined ( CC2540_MINIDK )
    /* SW_1 is at P0.0 */
    #define HAL_KEY_SW_1_PORT   P0
    #define HAL_KEY_SW_1_BIT    BV(0)
    #define HAL_KEY_SW_1_SEL    P0SEL
    #define HAL_KEY_SW_1_DIR    P0DIR
    #if 0
    /* SW_2 is at P0.1 */
    #define HAL_KEY_SW_2_PORT   P0
    #define HAL_KEY_SW_2_BIT    BV(1)
    #define HAL_KEY_SW_2_SEL    P0SEL
    #define HAL_KEY_SW_2_DIR    P0DIR
    #else
    /* SW_2 is at P1.2 */
    #define HAL_KEY_SW_2_PORT   P1
    #define HAL_KEY_SW_2_BIT    BV(2)
    #define HAL_KEY_SW_2_SEL    P1SEL
    #define HAL_KEY_SW_2_DIR    P1DIR
    #endif
    
    #define HAL_KEY_SW_1_IEN      IEN1  /* CPU interrupt mask register */
    #define HAL_KEY_SW_1_ICTL     P0IEN /* Port Interrupt Control register */
    #define HAL_KEY_SW_1_ICTLBIT  BV(0) /* P0IEN - P0.0 enable/disable bit */
    #define HAL_KEY_SW_1_IENBIT   BV(5) /* Mask bit for all of Port_0 */
    #define HAL_KEY_SW_1_PXIFG    P0IFG /* Interrupt flag at source */
    
    #if 0
    #define HAL_KEY_SW_2_IEN      IEN1  /* CPU interrupt mask register */
    #define HAL_KEY_SW_2_ICTL     P0IEN /* Port Interrupt Control register */
    #define HAL_KEY_SW_2_ICTLBIT  BV(1) /* P0IEN - P0.1 enable/disable bit */
    #define HAL_KEY_SW_2_IENBIT   BV(5) /* Mask bit for all of Port_0 */
    #define HAL_KEY_SW_2_PXIFG    P0IFG /* Interrupt flag at source */
    
    #else
    #define HAL_KEY_SW_2_IEN      IEN2  /* CPU interrupt mask register */
    #define HAL_KEY_SW_2_ICTL     P1IEN /* Port Interrupt Control register */
    #define HAL_KEY_SW_2_ICTLBIT  BV(2) /* P0IEN - P1.2 enable/disable bit */
    #define HAL_KEY_SW_2_IENBIT   BV(4) /* Mask bit for all of Port_1 */
    #define HAL_KEY_SW_2_PXIFG    P1IFG /* Interrupt flag at source */
    #endif


    三、添加选择p1.0--p1.3触发模式(上升沿or下降沿)

    #define HAL_KEY_SW_1_EDGEBIT  BV(0)|BV(1)


    四、初始化函数void HalKeyInit( void )中添加port1的中断使能功能

    //add by allen
      HAL_KEY_SW_2_IEN |= ( HAL_KEY_SW_2_IENBIT );   /* enable CPU interrupt */

    五、添加port1的中断处理函数

    //add by allen
    HAL_ISR_FUNCTION( halKeyPort1Isr, P1INT_VECTOR )
    {
      HAL_ENTER_ISR();
    
    #if defined ( CC2540_MINIDK )
      if (HAL_KEY_SW_2_PXIFG & HAL_KEY_SW_2_BIT)
    #else
      if (HAL_KEY_SW_6_PXIFG & HAL_KEY_SW_6_BIT)
    #endif
      {
        halProcessKeyInterrupt();
      }
    
      /*
        Clear the CPU interrupt flag for Port_0
        PxIFG has to be cleared before PxIF
      */
    #if defined ( CC2540_MINIDK )
      HAL_KEY_SW_2_PXIFG = 0;
    #else
      HAL_KEY_SW_6_PXIFG = 0;
    #endif
      HAL_KEY_CPU_PORT_1_IF = 0;
    
    
      CLEAR_SLEEP_MODE();
    
      HAL_EXIT_ISR();
    
      return;
    }


    六、如果demo初始化函数中有关于port的定义 ,需要进行修改,也可以直接屏蔽



    经过这几步,就可以利用demo中的按键回调函数处理按键事件了

    展开全文
  • 协议栈编译过程中,由于设置的堆栈空间过大,而且协议栈设置的功能又多的情况下,导致程序无法编译通过,所以需要通过调节协议栈的中堆栈的大小,缩小RAM空间让其存放其他功能。 但是这样操作,会影响到网络的...

    在协议栈编译过程中,由于设置的堆栈空间过大,而且协议栈设置的功能又多的情况下,导致程序无法编译通过,所以需要通过调节协议栈的中堆栈的大小,缩小RAM空间让其存放其他功能。
    但是这样操作,会影响到网络的容量,比如一些路由表等等的数据是在内存中管理的。如果堆栈变小,可分配的空间就变小了,设备节点的容量也就变小了。
    所以可以根据需求来进行设计,要么裁剪和精简功能,要么缩小协议栈堆栈,要么使用别的内存比较大的MCU。
    Z-Stack 堆栈大小配置位于OnBoard.h中的INT_HEAP_LEN宏定义,如下所示,这个是默认情况下堆栈的配置
    /* The following Heap sizes are setup for typical TI sample applications,
    * and should be adjusted to your systems requirements.
    */
    #if !defined INT_HEAP_LEN
    #if defined RTR_NWK
    #define INT_HEAP_LEN 3072
    #else
    #define INT_HEAP_LEN 2048
    #endif
    #endif
    #define MAXMEMHEAP INT_HEAP_LEN

    可以看到默认情况下,路由节点/协调器节点的堆栈空间为3072,终端节点的堆栈空间为2048,根据自己的设备类型修改这两个数据。

    展开全文
  • 协议商品即商城这方面跟各企业用户协商好的商品协议价,给出适当的优惠。在批量添加协议商品之前可以先改变其协议价,不做改变的默认和商品价格一致。 由于模板已经封装了ajax.call,可直接利用AJAX异步处理json数据...

    用的ecshop模板老,内嵌smarty模板引擎

    业务流程:
    协议商品即商城这方面跟各企业用户协商好的商品协议价,给出适当的优惠。在批量添加协议商品之前可以先改变其协议价,不做改变的默认和商品价格一致。

    这里写图片描述

    由于模板已经封装了ajax.call,可直接利用AJAX异步处理json数据。

    以下是表的一些数据,隐藏域input的value值是原商品价格,id为get_price_加上商品id,依次循环列出商品原价格,下面为协议价输入框,id同理。

    这里写图片描述

    单个添加修改
    两种方式
    一种是在按单个添加按钮后提示并输入价格的对话框,对输入数据进行校验限制,修改价格后添加;

    另一种跟批量添加相同但只选中一个

    var id = "";
    function add_business_goods(goods_id, cat_id,price) {
    
    //  var protocolPrice = document.getElementById("protocol_price_" + goods_id).value;
    
    
    //    var protocol_price = prompt("请输入协议价", "");
    //
    //  if (!isNaN(protocol_price) && protocol_price > 0) {
    //    document.getElementById("price").value = protocol_price;
    //    var price = document.getElementById("price").value;
    //  } else if(protocol_price == null){
    //    return false;
    //  } else {
    //    cfm = '{$lang.shop_price_invalid}';
    //    return confirm(cfm);
    //  }
      var price = document.getElementById("protocol_price_" + goods_id).value;
      price = isNull(price);
      if(price == "") {
        price = document.getElementById("get_price_" + goods_id ).value;
      } else if( isNaN(price) || price < 0) {
        cfm = '{$lang.shop_price_invalid}';
        return confirm(cfm);
      }
    
      id = goods_id;
    
      var args = "id=" + {$id} + "&goods_id=" + goods_id + "&cat_id=" + cat_id + "&price=" + price;
      Ajax.call('business_goods_handler.php?act=add_business',args, judge_add, "GET", "JSON");
    
    //  Ajax.call(this.url, args, this.listCallback, "GET", "JSON");
    }

    批量修改添加
    收集选中的商品id和对应的协议价格,
    goods_id += userItems[i].value + “:” + protocolPrice + “,”;
    拼接成”商品1:协议价1,商品2:协议价2……”的字符串,传到服务端后再分割成两个数组,即商品ID数组 和 价格数组,然后依次对应存入数据库。
    这样的步骤有点繁冗,而且容易出错。(这里我使用是为了将字符串传过去后记录到管理员操作日志上)


    这里我们用第二种方法
    在这里我们定义一个JS对象,存储数据后再解析成字符串,var cmt = JSON.stringify(data);
    stringify()用于从一个对象解析出字符串,如
    var a = {商品a:价格1,商品b:价格2……}
    结果:
    JSON.stringify(a)
    “{“商品a”:价格1,”商品b”:价格2}”

    function batch_add_business() {
      var userItems = document.getElementsByName('checkboxes[]');
      var data ={};
      var goods_id = "";
      for (var i=0; userItems[i]; i++)
      {
        if (userItems[i].checked)
        {
          var gd_id = userItems[i].value;
          var protocolPrice = document.getElementById("protocol_price_" + gd_id).value;
          protocolPrice = isNull(protocolPrice);
          if(protocolPrice == "") {
            protocolPrice = document.getElementById("get_price_" + gd_id ).value;
          } else if( isNaN(protocolPrice) || protocolPrice < 0) {
            cfm = '{$lang.shop_price_invalid}';
            return confirm(cfm);
          }
          goods_id += userItems[i].value + ":" + protocolPrice + ",";
          data[gd_id] = protocolPrice;
          var cmt = JSON.stringify(data);
        }
      }
    
      if(cmt != "") {
        goods_id = goods_id.substr(0, goods_id.length - 1);
        var args = "id=" + {$id} + "&goods_id=" + goods_id +"&cmt=" + cmt ;
        Ajax.call('business_goods_handler.php?act=batch_add',args, judge_batch_add, "POST", "JSON");
      }
    }


    传到服务端后用json_decode()解析json数据直接是 商品ID:协议价格 的关联数组,用key=>$value的形式循环插入数据即可。

    
    /*------------------------------------------------------ */
    //-- ajax返回批量新增协议商品
    /*------------------------------------------------------ */
    elseif ($_REQUEST['act'] == 'batch_add')
    {
        admin_priv('business_edit');
        $bid = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0;
        $_REQUEST['cmt'] = isset($_REQUEST['cmt']) ? trim(stripcslashes(json_str_iconv($_REQUEST['cmt']))) : '';
    
        $data = json_decode($_REQUEST['cmt'],true);
    
        if (!empty($data))
        {
    
            foreach ($data as $k => $v ) {
                $sql = "insert into " . $ecs->table('business_good_rel') .
                    " (b_id, goods_id, parent_menu, protocol_price, create_time) select '$bid', '$k', cat_id, '$v', now() from "
                    . $ecs->table('goods')
                    . " where goods_id in (" . $k
                    . ") and goods_id not in (select goods_id from "
                    . $ecs->table('business_good_rel')
                    . "where b_id = '$bid')";
                $db->query($sql);
            }
    
            /* 记录管理员操作 */
            admin_log($bid.':'.$_REQUEST['goods_id'], 'add', 'add_business');
            make_json_success($_LANG['add_success_business']);
        }
    
        else
        {
            make_json_error($_LANG['add_fail_empty']);
        }
    
    }
    展开全文
  • 程序正在修改URL协议关联

    千次阅读 2020-08-03 11:44:47
    电脑管家提示信息:程序正在修改URL协议关联,修改后网址可能会跳转到指定地址。下边的360则提示:极少软件会修改此项注册新的URL协议,此处容易被木马、病毒利用。如果您不认识此程序,请阻止。 原因 说实话,...
  • CentOS内核修改TCP协议

    2017-05-16 10:04:46
    centos6.8系统怎么查询当前运行的TCP协议和内核中有的TCP协议(或者是拥塞控制协议),以及怎么修改当前运行当前的TCP协议(拥塞控制协议
  • tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一、 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安全的,也是统一的资源标志符。就好比HTTP协议和HTTPS...
  • 不同的协议有不同的解码器,wireshark尝试为每个包尝试找到正确的解码器,特定的情况有可能会选择错误的解码器。 1.使用了其它协议的标准端口,被错误解码,使用udp的80端口发送数据被当作QUIC协议解析。wireshark菜单...
  • hbase客户端协议修改

    千次阅读 2016-07-15 19:32:31
    hbase 的客户端 协议修改(源码基于hbase-1.1.5版本) hbase 的客户端通过 RpcClientImpl 进行远程的rpc调用客户端连接到远程是通过RpcClientImpl 进行管理的,通过创建 createSocket 进行连接到远程的服务端 ...
  • CAS单点登录https协议修改成http协议

    千次阅读 2013-09-03 14:59:53
    故将https协议修改成http协议。现将修改步骤记录如下: CAS服务端修改: 1、修改 cas\WEB-INF\spring-configuration目录下的ticketGrantingTicketCookieGenerator.xml <bean id="ticketGrantingTicketCookieGen
  • iOS 修改为http协议

    2015-12-03 11:22:10
    iOS9后系统默认的是https协议,https...修改为http协议的方法是: 1、打开项目的plist文件找到Info; 2、找到Application requires iPhone environment; 3、添加Allow Arbitrary Loads 并设置为YES。 ...
  • HTTP使用WEBLOGIC修改为HTTPS协议

    热门讨论 2012-05-03 15:41:29
    自用,使用WEBLOGIC将普通http协议修改为HTTPS加密协议,为了过评审没办法,写出自用手册
  • 修改smac协议成lmac

    千次阅读 2012-12-19 14:33:52
    往NS2.29中添加了一个新的MAC协议,暂时命名为LMAC.其实它的代码内容和SMAC一样,我只是想验证一下如何在NS2.29中添加新的协议。 1.在~/ns-allinone-2.29/ns-2.29/mac目录下copy原来的smac.cc和smac.h  cp smac....
  • 校内网修改开放平台协议

    千次阅读 2008-07-13 14:40:00
    7月10日中午消息,就校内网开放平台协议遭用户质疑一事,校内网市场部相关负责人透露,该公司已收到用户的类似反馈,并对开放协议的一些条款做出修改。 校内网于7月8日在推出开放平台,千橡集团董事长兼CEO陈一舟对...
  • 增加SUDO用户并加入wheel组. [root@test ~]# useradd testuser1 [root@test ~]# passwd testuser1 [root@test ~]# usermod -aG wheel testuser1 [root@test ~]# id ...修改SSH端口,关闭root登陆,关闭SSH协议..
  • 通过修改注册表,达到修改IE协议头的目的 注册路径 = “SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform\” 两个文本变量装协议头 windows = “Mozilla/4.0?...
  • 很多咨询者都问我们,TSINGSEE青犀视频云边端架构产品是否能够输出多种协议...EasyNVR_v4.1.0版本中已经支持用户修改默认播放协议和开放协议,用户可以根据自己需要进行修改修改默认接入协议及开放协议,可以进入
  • 很多咨询者都问我们,TSINGSEE青犀视频云边端架构产品是否能够输出多种协议...EasyNVR_v4.1.0版本中已经支持用户修改默认播放协议和开放协议,用户可以根据自己需要进行修改修改默认接入协议及开放协议,可以进入
  • 修改HTTP协议状态码

    千次阅读 2014-08-22 15:34:54
    HttpServletResponse response = ServletActionContext.getResponse(); HttpServletRequest request= ServletActionContext.getRequest(); response.setStatus(HttpServletResponse.SC_NOT_FOUND);...
  • fiddler根据请求路径,修改host,协议,和请求转发 if (oSession.host=="517repairmini.xiaomaiqipei.com") { if (oSession.uriContains("/pages/") ||oSession.uriContains("/subPages/pages/") ||...
  • AODV协议修改相关文章

    2013-01-03 19:17:41
    AODV链表  ... 如何在NS-2 AODV协议中添加一种新的数据包类型  http://blog.csdn.net/qinleopard/article/details/6572175 AODV中路由表及控制消息结构(包含aodv开源代码) http://bl
  • 如果目前正在运行火狐26,你可能已经注意到,浏览器仅支持SSL 3.0和TLS 1.0,默认不开启TLS ...你也可以手动修改,如把最大值改为2,那么Firefox27即使是支持TLS 1.2的,也不会去尝试使用,而是优先尝试使用TLS 1.1。
  • 修改Tomcat的端口,http协议端口为80 访问的输入网址内网公网ip或localhost,127.0.0.1都能够访问 当需要外网访问时,输入公网(注意:端口配置若不是http默认端口如:8080,公网不能够ip+端口访问) 修改Tomcat...
  • TCP协议ACK延时确认时间的修改

    千次阅读 2016-06-24 11:33:51
    在系统中TCP协议的ACK发送有默认条件:2个包发送一次或者200ms发送一次 这会导致在高性能条件下的数据延迟,下面我们将修改ack延时修改为0一、Linuxlinux下比较简单,在c语言中可以通过设置socket来实现 int ...
  • SNMP的简介和Linux下IPV4,IPV6地址的snmp协议开启可以参考上一个随笔:[Linux]CentOS6.9开启snmp支持IPV4和IPV6 二、修改默认的snmp端口 在某些情况下,可能不希望snmp通过161端口发送本机的信息(安全考虑,161...
  • 1.修改配置文件/etc/samba/smb.conf; 2.重启samba服务,service smb restart。
  • 现在有的工程因为升级xcode7不能进行请求数据,新特性要求App内访问的网络必须使用HTTPS协议。但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。 1. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,935
精华内容 8,374
关键字:

修改协议