`
ljl_xyf
  • 浏览: 642200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Silverlight DataGrid使用之一 显示篇

 
阅读更多
Silverlight DataGrid使用之一 显示篇

一、

用过asp.netGridview 应该熟悉datagrid控件

  Silverlight DataGrid常用事件:

  BeginningEdit:发生于一个单元格或行进入编辑模式之前。

  CellEditEnded:发生于一个单元格编辑已被确认或取消。

  CellEditEnding:发生于一个单元格正在结束编辑时。

  CurrentCellChanged:发生于一个单元格成为当前单元格时。

  PreparingCellForEdit:发生于在DataGridTemplateColumn下的单元格进入编辑模式时。

  SelectionChanged:发生于当SelectedItemSelectedItems属性值改变时。

  Silverlight DataGrid常用方法:

  BeginEdit:使DataGrid进入编辑状态。

  CancelEdit:取消DataGrid的编辑状态。

  CollapseRowGroup:闭合DataGrid的行分组。

  CommitEdit:确认DataGrid的编辑完成。

  ExpandRowGroup:展开DataGrid的行分组。

  GetGroupFromItem:从具体Item中得到分组。

  ScrollIntoView:滚动DataGrid视图。

  Silverlight DataGrid常用属性:

  AlternatingRowBackground:获取或设置一个笔刷用来描绘DataGrid奇数行的背景。

  AreRowDetailsFrozen:获取或设置一个值用来判断是否冻结每行内容的详细信息。

  AreRowGroupHeadersFrozen:获取或设置一个值用来判断是否冻结分组行的头部。

  AutoGenerateColumns:获取或设置一个值用来判断是否允许自动生成表列。

  CanUserReorderColumns:获取或设置一个值用来判断是否允许用户重新排列表列的位置。

  CanUserSortColumns:获取或设置一个值用来判断是否允许用户按列对表中内容进行排序。

  CellStyle:获取或设置单元格的样式。

  ColumnHeaderHeight:获取或设置列头的高度。

  ColumnHeaderStyle:获取或设置列头的样式。

  Columns:获取组件中包含所有列的集合。

  ColumnWidth:获取或设置列宽。

  CurrentColumn:获取或设置包含当前单元格的列。

  CurrentItem:获取包含当前单元格且与行绑定的数据项。

  DragIndicatorStyle:获取或设置当拖曳列头时的样式。

  DropLocationIndicatorStyle:获取或设置呈现列头时的样式。

  FrozenColumnCount:获取或设置冻结列的个数。

  GridLinesVisibility:获取或设置网格线的显示形式。

  HeadersVisibility:获取或设置行头及列头的显示形式。

  HorizontalGridLinesBrush:获取或设置水平网格线的笔刷。

  HorizontalScrollBarVisibility:获取或设置水平滚动条的显示样式。

  IsReadOnly:获取或设置DataGrid是否为只读。

  MaxColumnWidth:获取或设置DataGrid的最大列宽。

  MinColumnWidth:获取或设置DataGrid的最小列宽。

  RowBackground:获取或设置用于填充行背景的笔刷。

  RowDetailsTemplate:获取或设置被用于显示行详细部分的内容的模板。

  RowDetailsVisibilityMode:获取或设置一个值用以判定行详细部分是否显示。

  RowGroupHeaderStyles:获取呈现行分组头部的样式。

  RowHeaderStyle:获取或设置呈现行头的样式。

  RowHeaderWidth:获取或设置行头的宽度。

  RowHeight:获取或设置每行的高度。

  RowStyle:获取或设置呈现行时的样式。

  SelectedIndex:获取或设置当前选中部分的索引值。

  SelectedItem:获取或设置与当前被选中行绑定的数据项。

  SelectedItems:获取与当前被选中的各行绑定的数据项们的列表(List)

  SelectionMode:获取或设置DataGrid的选取模式。

  VerticalGridLinesBrush:获取或设置垂直网格线的笔刷。

  VerticalScrollBarVisibility:获取或设置垂直滚动条的显示样式。

  1指定Column列表

   <sdk:DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" 
VerticalAlignment="Top" Width="368" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="
编号"  Binding="{Binding id}"></sdk:DataGridTextColumn>
                <sdk:DataGridTextColumn Header="
文本" Binding="{Binding text}"></sdk:DataGridTextColumn>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

  还有个DataGridCheckBoxColumn 它主要是Checkbox选项 boolean类型 另外DataGridTemplateColumn是自定义布局数据模板

  2 加载时候显示填色

        SolidColorBrush r = new SolidColorBrush(Colors.Red); 
        private
 void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            CData c = e.Row.DataContext as
 CData;
            if
 (c.id % 5 == 0)
                e.Row.Background = r;
            else

                e.Row.Background = new SolidColorBrush(Colors.White);

        }

  3 Row详细显示模板

<sdk:DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="368" LoadingRow="dataGrid1_LoadingRow">
            <sdk:DataGrid.Columns>
                             <sdk:DataGridTextColumn Header="
编号"  Binding="{Binding id}"></sdk:DataGridTextColumn>
                <sdk:DataGridTextColumn Header="
文本" Binding="{Binding text}"></sdk:DataGridTextColumn>
            </sdk:DataGrid.Columns>
            <sdk:DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <Border>
                        <Rectangle Width="auto"
 Height="50" Fill="Red"></Rectangle>
                    </Border>
                </DataTemplate>
            </sdk:DataGrid.RowDetailsTemplate>
        </sdk:DataGrid>

  

 

 

 

 

Silverlight DataGrid使用之二 更新行篇

2011-06-05 16:08

首先在wcf加上一个编辑方法

    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        List<CData> GetCDatas();
        [OperationContract]
        bool EditCData(CData c);


        // TODO:
在此添加您的服务操作
    }

    // 使用下面示例中说明的数据协定将复合类型添加到服务操作
    [DataContract]
    public class CData
    {
        [DataMember]
        public int id;
        [DataMember]
        public string text;

    }

 

    [System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]
    public class Service1 : IService1
    {


        public List<CData> GetCDatas()
        {
            SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);
            SqlCommand  cmd=new SqlCommand ("select id,text from t1",cn);
            cn.Open();
            SqlDataReader dr=cmd.ExecuteReader( );
             List<CData> CList=new List<CData> ();
             while (dr.Read())
             {
                 CData c = new CData { id = int.Parse(dr["id"].ToString()), text = dr["text"].ToString() };
                 CList.Add(c);


             }
             cn.Close();
            return CList;

        }


        public bool EditCData(CData c)
        {

            SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);
            SqlCommand cmd = new SqlCommand("update t1 set text=@text where id=@id",cn);
            cmd.Parameters.Add("@text", System.Data.SqlDbType.NVarChar).Value = c.text;
            cmd.Parameters.Add("@id", System.Data.SqlDbType.Int).Value=c.id;
            cn.Open();
            int r = cmd.ExecuteNonQuery();
            cn.Close();
            if (r > 0)
                return true;
            else
                return false;
        }
    }

在数据库 创建一个表 随便取名

http://hiphotos.baidu.com/mldark/pic/item/7792122ecf9056651e308981.jpg

 

xaml代码

   <sdk:DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="368" LoadingRow="dataGrid1_LoadingRow" FrozenColumnCount="1" RowEditEnded="dataGrid1_RowEditEnded">
            <sdk:DataGrid.Columns>
             <sdk:DataGridTextColumn Header="
编号"   Binding="{Binding id}"></sdk:DataGridTextColumn>
                <sdk:DataGridTemplateColumn Header="
文本">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding text}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                    <sdk:DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Mode=TwoWay, Path=text}"></TextBox>
                        </DataTemplate> 

                    </sdk:DataGridTemplateColumn.CellEditingTemplate>
                </sdk:DataGridTemplateColumn>            </sdk:DataGrid.Columns>
        
        </sdk:DataGrid>

cs代码

       private void dataGrid1_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e)
       {
           CData c = e.Row.DataContext as CData;
           Service1Client s = new Service1Client();
           s.EditCDataCompleted += new EventHandler<EditCDataCompletedEventArgs>(s_EditCDataCompleted);
           s.EditCDataAsync(c);

       }

       void s_EditCDataCompleted(object sender, EditCDataCompletedEventArgs e)
       {
           if (e.Result)
               System.Windows.Browser.HtmlPage.Window.Alert("
成功");
           else
               System.Windows.Browser.HtmlPage.Window.Alert("
失败");
       }

然后测试 显示列表后 双击一个行

http://hiphotos.baidu.com/mldark/pic/item/231d0e03fa1eda524afb5199.jpg

然后点击DataGrid边框 结束编辑状态

http://hiphotos.baidu.com/mldark/pic/item/e09346817dfe728a9323d976.jpg

 

 

Silverlight DataGrid使用之三 排序篇

2011-06-06 23:18

首先DataGrid 自带的排序特性

<Grid x:Name="LayoutRoot" Background="White">
<sdk:DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="368" LoadingRow="dataGrid1_LoadingRow" FrozenColumnCount="1" RowEditEnded="dataGrid1_RowEditEnded">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="
编号" Binding="{Binding id}" CanUserSort="True" ></sdk:DataGridTextColumn>
<sdk:DataGridTemplateColumn Header="
文本">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding text}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Mode=TwoWay, Path=text}"></TextBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>

</sdk:DataGrid>

http://hiphotos.baidu.com/mldark/pic/item/c2a85a8992dd30c9a6c2724a.jpg

另一个方法是使用 System.Windows.Data.PagedCollectionView

在后台代码

public partial class DataGridControl : UserControl
{
public DataGridControl()
{
InitializeComponent();
SilverlightApplication1.ServiceReference1.Service1Client c = new ServiceReference1.Service1Client();
c.GetCDatasCompleted += new EventHandler<ServiceReference1.GetCDatasCompletedEventArgs>(c_GetCDatasCompleted);
c.GetCDatasAsync();
}

void c_GetCDatasCompleted(object sender, ServiceReference1.GetCDatasCompletedEventArgs e)
{
if (e.Error == null)
{
System.Windows.Data.PagedCollectionView view = new System.Windows.Data.PagedCollectionView(e.Result);

view.SortDescriptions.Add(new System.ComponentModel.SortDescription("id", System.ComponentModel.ListSortDirection.Descending) );//指定属性名称作排序
dataGrid1.ItemsSource = view;


}

}

 

 

 

 

 

 

 

Silverlight DataGrid使用之四 过滤篇

2011-06-06 23:36

创建wcfxml页面 参考http://hi.baidu.com/mldark/blog/item/a8f40a1909fa26a34bedbce3.html

http://hi.baidu.com/mldark/blog/item/a8315d01c4c3b909738b650d.html

然后在后台代码 修改一下

namespace SilverlightApplication1
{
    public partial class DataGridControl : UserControl
    {
        public DataGridControl()
        {
            InitializeComponent();
            SilverlightApplication1.ServiceReference1.Service1Client c = new ServiceReference1.Service1Client();
            c.GetCDatasCompleted += new EventHandler<ServiceReference1.GetCDatasCompletedEventArgs>(c_GetCDatasCompleted);
            c.GetCDatasAsync();
        }

        void c_GetCDatasCompleted(object sender, ServiceReference1.GetCDatasCompletedEventArgs e)
        {
            if (e.Error == null)
            {
               System.Windows.Data.PagedCollectionView view = new System.Windows.Data.PagedCollectionView(e.Result);

                view.Filter = (o) =>
                {
                    CData c = o as CData;
                    return c.id % 5 == 0;
                    //过滤条件
                };

                dataGrid1.ItemsSource = view;

           
            }

        }

如果需要服务器数据库上过滤条件数据 首先在sl输入好条件然后用wcf发送到服务器上 用sqlwhere 返回一个列表 需要wcf定义一个过滤方法 看需求过滤什么条件 就可以了 思路和更新行没什么区别的

 

 

 

 

查看文章

 

 

Silverlight DataGrid使用之五 分页篇

2011-06-07 23:01

Silverlight提供分页特性参考http://hi.baidu.com/mldark/blog/item/cbbdc3c30ffe5f21e4dd3bc4.html这个文章

接下来讲解用服务端分页合适上万数据使用

首先在数据库创建一个表 随便取名

http://hiphotos.baidu.com/mldark/pic/item/7792122ecf9056651e308981.jpg

然后创建一个存储过程 取名DataGridPages  

CreatePROCEDURE [dbo].[DataGridPages] (@pageindex int,@pagesize int  )
AS
BEGIN
  with pages as
 (
     SELECT id,text,ROW_NUMBER()over(order by id)as pageindex  FROM dbo.t1
 )
  SELECT * FROM pages
  where pageindex between(@pageindex*@pagesize)+1 and (@pageindex+1)*@pagesize

END


我用的是sqlserver2008版本 创建好了 然后在wcf创建类型

cs代码

 

namespace WcfService1
{
    //
注意: 使用重构菜单上的重命名命令,可以同时更改代码和配置文件中的接口名IService1”。
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        List<CData> GetCDatas(int pageindex,int pagesize);
           [OperationContract]
        int PageCount(int pagesize);

        // TODO: 在此添加您的服务操作
    }

    // 使用下面示例中说明的数据协定将复合类型添加到服务操作
    [DataContract]
    public class CData
    {
        [DataMember]
        public int id;
        [DataMember]
        public string text;

    }

  [System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]
    public class Service1 : IService1
    {


        public List<CData> GetCDatas(int pageindex,int pagesize)
        {
            SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);
            SqlCommand  cmd=new SqlCommand ("DataGridPages",cn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@pageindex", pageindex);
            cmd.Parameters.AddWithValue("@pagesize", pagesize);
            cn.Open();
            SqlDataReader dr=cmd.ExecuteReader( );
             List<CData> CList=new List<CData> ();
             while (dr.Read())
             {
                 CData c = new CData { id = int.Parse(dr["id"].ToString()), text = dr["text"].ToString() };
                 CList.Add(c);
           
             }
             cn.Close();
            return CList;

        }


 


        public int PageCount(int pagesize)
        {
            SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);
            SqlCommand  cmd=new SqlCommand ("SELECT COUNT(id) FROM t1" ,cn);
            cn.Open();
            int count =int.Parse( cmd.ExecuteScalar().ToString());
            cn.Close();

            if (count % pagesize == 0)//如果有余数的话+1
                return count / pagesize;
            else
                return count / pagesize + 1;
        }
    }

xaml代码

    <Grid x:Name="LayoutRoot" Background="White">
        <sdk:DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="368" LoadingRow="dataGrid1_LoadingRow" FrozenColumnCount="1" >
            <sdk:DataGrid.Columns>
             <sdk:DataGridTextColumn Header="
编号"   Binding="{Binding id}" CanUserSort="True"></sdk:DataGridTextColumn>
                <sdk:DataGridTemplateColumn Header="
文本">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding text}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                    <sdk:DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Mode=TwoWay, Path=text}"></TextBox>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellEditingTemplate>
                </sdk:DataGridTemplateColumn>
            </sdk:DataGrid.Columns>
        
        </sdk:DataGrid>
        <Button Content="
上页" Height="23" HorizontalAlignment="Left" Margin="0,255,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <Button Content="
下页" Height="23" HorizontalAlignment="Left" Margin="81,255,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="162,255,0,0" Name="textBlock1" Text="" VerticalAlignment="Top" Width="97" />
    </Grid>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using SilverlightApplication1.ServiceReference1;

namespace SilverlightApplication1
{
    public partial class DataGridControl : UserControl
    {
        int currentIndex = 0;//
当前素引
        int pagesize = 5;//每页项数
        int pagecount;//页总数
        SilverlightApplication1.ServiceReference1.Service1Client c = new ServiceReference1.Service1Client();
          
        public DataGridControl()
        {
           
            InitializeComponent();
            c.GetCDatasCompleted += new EventHandler<ServiceReference1.GetCDatasCompletedEventArgs>(c_GetCDatasCompleted);
            c.GetCDatasAsync(currentIndex,pagesize);
            c.PageCountCompleted += new EventHandler<PageCountCompletedEventArgs>(c_PageCountCompleted);
            c.PageCountAsync(pagesize);
        }

        void c_PageCountCompleted(object sender, PageCountCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                pagecount = e.Result;
                textBlock1.Text = currentIndex + 1 + "/" + pagecount;
            }
        
        }

        void c_GetCDatasCompleted(object sender, ServiceReference1.GetCDatasCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                        
                dataGrid1.ItemsSource = e.Result;

           
            }

        }

       private void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
      }

 
        //
下页
       private void button2_Click(object sender, RoutedEventArgs e)
       {
             currentIndex++;
           if (pagecount-1 <= currentIndex)
           {
               currentIndex = pagesize -3;
               c.GetCDatasAsync(currentIndex, pagesize);
               button2.IsEnabled = false;
               button1.IsEnabled = true;
           }
           else
           {
           
               c.GetCDatasAsync(currentIndex, pagesize);
               button1.IsEnabled = true;
           }
           textBlock1.Text = currentIndex+1 + "/" + pagecount;
       
       }
        //
上页
       private void button1_Click(object sender, RoutedEventArgs e)
       {
           currentIndex--;
           if (0 >= currentIndex)
           {
               currentIndex = 0;
               c.GetCDatasAsync(currentIndex, pagesize);
               button1.IsEnabled = false;
               button2.IsEnabled = true;
           }
           else
           {
               c.GetCDatasAsync(currentIndex, pagesize);
               button2.IsEnabled = true;
           }
           textBlock1.Text = currentIndex + 1 + "/" + pagecount;
       
       }
    }
}
显示效果

http://hiphotos.baidu.com/mldark/pic/item/b7fc1cee94ee70b2cf1b3e11.jpg

 

 

 

分享到:
评论

相关推荐

    6Silverlight访问数据库之MySQL数据库[参照].pdf

    DataGrid 是 Silverlight 中用于显示和编辑表格数据的强大控件,它能够方便地展示和操作数据集。 接下来,我们需要创建一个测试用的MySQL数据库。在本例中,创建了一个名为"employees"的数据库,并在其中建立了一个...

    5Silverlight访问数据库之Access数据库[参照].pdf

    对于数据展示,可以使用 DataGrid 控件,它提供了强大的数据绑定和显示功能。同时,学习 ADO.NET Entity Framework 可以帮助理解数据交互的基本原理。 接下来,创建 Access 数据库。在本例中,我们创建一个名为 ...

    OFDM、OOK、PPM、QAM 的误码率模拟【绘制不同调制方案的误码率曲线】附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    8c71b76fb2ec10cf50fc6b0308d3dcfc_9545878e2b97a84b2e089ece58da9e82.png

    8c71b76fb2ec10cf50fc6b0308d3dcfc_9545878e2b97a84b2e089ece58da9e82

    Android SO逆向-对象的拷贝构造函数.pdf

    Android逆向过程学习

    基于S7-200 PLC的糖果包装控制系统设计与实现

    内容概要:本文详细介绍了基于西门子S7-200 PLC的糖果包装控制系统的设计与实现。首先阐述了PLC在工业自动化领域的优势及其在糖果包装生产线中的重要性。接着深入探讨了系统的硬件连接方式,包括传感器、执行机构与PLC的具体接口配置。随后展示了关键的编程实现部分,如糖果计数、包装执行、送膜控制、称重判断以及热封温度控制等具体梯形图代码片段。此外,还分享了一些实用的经验技巧,如防止信号抖动、PID参数优化、故障诊断方法等。最后总结了该系统的优势,强调其对提高生产效率和产品质量的重要作用。 适合人群:从事工业自动化控制、PLC编程的技术人员,尤其是对小型PLC系统感兴趣的工程师。 使用场景及目标:适用于糖果制造企业,旨在提升包装生产线的自动化程度,确保高效稳定的生产过程,同时降低维护成本并提高产品一致性。 其他说明:文中不仅提供了详细的理论讲解和技术指导,还结合实际案例进行了经验分享,有助于读者更好地理解和掌握相关知识。

    PLC与WinCC实现三部十层电梯协同控制及优化技巧

    内容概要:本文详细介绍了参与西门子杯比赛中关于三部十层电梯系统的博图V15.1程序设计及其WinCC画面展示的内容。文中不仅展示了电梯系统的基本架构,如抢单逻辑、方向决策、状态机管理等核心算法(采用SCL语言编写),还分享了许多实际调试过程中遇到的问题及解决方案,例如未初始化变量导致的异常行为、状态机遗漏空闲状态、WinCC画面动态显示的挑战以及通信配置中的ASCII码解析错误等问题。此外,作者还特别提到一些创意性的设计,如电梯同时到达同一层时楼层显示器变为闪烁爱心的效果,以及节能模式下电梯自动停靠中间楼层的功能。 适合人群:对PLC编程、工业自动化控制、电梯调度算法感兴趣的工程技术人员,尤其是准备参加类似竞赛的学生和技术爱好者。 使用场景及目标:适用于希望深入了解PLC编程实践、掌握电梯群控系统的设计思路和技术要点的人士。通过学习本文可以更好地理解如何利用PLC进行复杂的机电一体化项目的开发,提高解决实际问题的能力。 其他说明:文章风格幽默诙谐,将严肃的技术话题融入轻松的生活化比喻之中,使得原本枯燥的专业知识变得生动有趣。同时,文中提供的经验教训对于从事相关领域的工作者来说非常宝贵,能够帮助他们少走弯路并激发更多创新思维。

    慧荣量产工具合集.zip

    慧荣量产工具合集.zip

    永磁同步电机FOC控制与SVPWM算法仿真模型解析

    内容概要:本文详细介绍了永磁同步电机(PMSM)的FOC(磁场定向控制)和SVPWM(空间矢量脉宽调制)算法的仿真模型。首先解释了FOC的基本原理及其核心的坐标变换(Clark变换和Park变换),并给出了相应的Python代码实现。接下来探讨了SVPWM算法的工作机制,包括扇区判断和占空比计算的方法。此外,文章还讨论了电机的PI双闭环控制结构,即速度环和电流环的设计与实现。文中不仅提供了详细的理论背景,还分享了一些实用的编程技巧和注意事项,帮助读者更好地理解和应用这些算法。 适合人群:电气工程专业学生、从事电机控制系统开发的技术人员以及对永磁同步电机控制感兴趣的科研人员。 使用场景及目标:① 学习和掌握永磁同步电机的FOC控制和SVPWM算法的具体实现;② 提供丰富的代码示例和实践经验,便于快速搭建和调试仿真模型;③ 探讨不同参数设置对电机性能的影响,提高系统的稳定性和效率。 其他说明:文章强调了在实际应用中需要注意的一些细节问题,如坐标变换中的系数选择、SVPWM算法中的扇区判断优化以及PI控制器的参数调整等。同时,鼓励读者通过动手实验来加深对各个模块的理解。

    spring-ai-qianfan-1.0.0-M5.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    Android安全之旅系列博客导读.pdf

    Android逆向过程学习

    【图像处理】基于双目视觉的物体体积测量算法研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    3dmax插件按面积分离.ms

    3dmax插件

    spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar中文文档.zip

    # 【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar中文文档.zip】 中包含: 中文文档:【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar中文文档.zip,java,spring-ai-autoconfigure-vector-store-qdrant-1.0.0-M7.jar,org.springframework.ai,spring-ai-autoconfigure-vector-store-qdrant,1.0.0-M7,org.springframework.ai.vectorstore.qdr

    【ARIMA-WOA-LSTM】差分自回归移动平均方法-鲸鱼优化算法-LSTM预测研究附python代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    永磁同步电机控制系统中平方根容积卡尔曼滤波(SRCKF)的应用及优化

    内容概要:本文详细介绍了平方根容积卡尔曼滤波(SRCKF)在永磁同步电机(PMSM)控制系统中的应用及其相对于传统CKF的优势。文章首先指出传统CKF在处理协方差矩阵时存在的数值不稳定性和非正定问题,导致系统性能下降。接着,作者通过引入SRCKF,利用Cholesky分解和QR分解来确保协方差矩阵的正定性,从而提高状态估计的精度和稳定性。文中展示了具体的电机模型和状态方程,并提供了详细的代码实现,包括状态预测、容积点生成以及观测更新等关键步骤。此外,文章还分享了实际调试过程中遇到的问题及解决方案,如选择合适的矩阵分解库和处理电机参数敏感性。最终,通过实验数据对比,证明了SRCKF在突加负载情况下的优越表现。 适合人群:从事永磁同步电机控制研究的技术人员、研究生及以上学历的研究者。 使用场景及目标:适用于需要高精度状态估计的永磁同步电机控制系统的设计与优化,特别是在处理非线性问题和提高数值稳定性方面。 其他说明:文章引用了相关领域的权威文献,如Arasaratnam的TAC论文和Zhong的《PMSM无传感器控制综述》,并强调了实际工程实践中代码调试的重要性。

    tokenizers-0.31.1.jar中文文档.zip

    # 【tokenizers-***.jar***文档.zip】 中包含: ***文档:【tokenizers-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【tokenizers-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【tokenizers-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【tokenizers-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【tokenizers-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: tokenizers-***.jar***文档.zip,java,tokenizers-***.jar,ai.djl.huggingface,tokenizers,***,ai.djl.engine.rust,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,djl,huggingface,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【tokenizers-***.jar***文档.zip】,再解压其中的 【tokenizers-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>ai.djl.huggingface</groupId> <artifactId>tokenizers</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'ai.djl.huggingface', name: 'tokenizers', version: '***' Gradle (Short): implementation 'ai.djl.huggingface:tokenizers:***' Gradle (Kotlin): implementation("ai.djl.huggingface:tokenizers:***") ``` # 含有的 Java package(包): ``` ai.djl.engine.rust ai.djl.engine.rust.zoo ai.djl.huggingface.tokenizers ai.djl.huggingface.tokenizers.jni ai.djl.huggingface.translator ai.djl.huggingface.zoo ``` # 含有的 Java class(类): ``` ai.djl.engine.rust.RsEngine ai.djl.engine.rust.RsEngineProvider ai.djl.engine.rust.RsModel ai.djl.engine.rust.RsNDArray ai.djl.engine.rust.RsNDArrayEx ai.djl.engine.rust.RsNDArrayIndexer ai.djl.engine.rust.RsNDManager ai.djl.engine.rust.RsSymbolBlock ai.djl.engine.rust.RustLibrary ai.djl.engine.rust.zoo.RsModelZoo ai.djl.engine.rust.zoo.RsZooProvider ai.djl.huggingface.tokenizers.Encoding ai.djl.huggingface.tokenizers.HuggingFaceTokenizer ai.djl.huggingface.tokenizers.HuggingFaceTokenizer.Builder ai.djl.hu

    3.png

    3

    pchook源码纯源码不是dll

    pchook源码纯源码不是dll

Global site tag (gtag.js) - Google Analytics