c# .net iot+香橙派orangepi开发板 200多块打造自家远程 浇花助手 系统

发布时间:2022-12-04 WIRINGOP 香橙派 C# ORANGEPI .NET

由于出差多,这里的花经常过一段时间才能浇水,有些花都旱晕了,所以想做一个助手帮我远程就可以操作浇花,当然也完全可以发展为一个商用系统,拿浇花来做为一个测试平台吧,现在已经完成了,并已经运行了一个多月

 

 

总体来讲开发起来还是比较容易的,大家可以尝试,可以做很多物联网的产品

准备材料:

1、5V香橙派 zero2 一个

2、5V高低电平继电器一个

3、S8550 PNP三极管一个

4、12V转5V 转换器一个

5、5v 3cm散热风扇一个

6、sht30温湿计一个

7、12V水管专用的电磁阀门一个

8、浇花水管和喷头一套

9、电箱+底板一个

10、杜邦线几条

11、220V转12V电源一个

以上材料都是在某宝上采购的,成本一共200-250吧

另外我在腾讯云买了一个linux的轻应用服务器 作为我的云端服务器,由于我是首次购买:66元就可以一年

开发环境:

vs2022   .net 6+rabbitmq+mysql

先讲解一下各个元件的作用:

香橙派 zero2 :用作网关主机,安装官网提供的ubuntu系统,部署.net应用程序,用来控制高低电平继电器打开 水管专用的电磁阀门 和 散风扇开关

高低电平继电器:有控制断开和接通电路的用作,实现开关,接12V水管专用的电磁阀门火线

S8550 PNP三极管:用于控制开关散热风扇

也有控制断开和接通电路的用作,实现开关, 跟继电器类似,区别是 他没有负载电隔离功能,继电器有隔离,电流很大时发热量很大,多用于小电流场合,继电器用于大电流场合,所以两个我都体验用一下

220V转12V电源:接家用电,接12V水管专用的电磁阀门零线

12V转5V 转换器:接5V香橙派 zero2,5V高低电平继电器,5v 3cm散热风扇一个

5v 3cm散热风扇:装在机箱,如果 6、sht30温湿计检测的 温度高于35℃,风扇启动散热,33度关闭

工作原理:

服务端发送指令到mq

网关香橙派zero接收消费mq,并执行指令

9e2f9c25176042a1a1fc73a5c6297b86.png

 

mysql主要用到的表

7e41e2187cc041bcaf9c432f815b5270.png

c#读取sht30温湿传感例子,使用nuget 包Iot.Device.bindings即可

using Iot.Device.Sht3x;
using System.Device.I2c;
  /// <summary>
    ///  //sht30温湿传感器
    /// </summary>
    public static class Device_Sensor_SHT30TempAndHumService
    {

        public static void test()
        {
            //运行调用例子
            while (true)
            {
                Model_Sht30TempAndHumu returnValue = getTempAndHum();               
                Thread.Sleep(1000);
            }
        }

        static I2cConnectionSettings set = new(0, (byte)OverWriteI2cAddress.AddrLow);
        static I2cDevice dev = I2cDevice.Create(set);
        static Sht3x sht = new Sht3x(dev);
        static Model_Sht30TempAndHumu returnValue = new Model_Sht30TempAndHumu();
        public static Model_Sht30TempAndHumu getTempAndHum()
        {
           // returnValue = new Model_Sht30TempAndHumu();
            // 温度
            returnValue.Temperature = sht.Temperature.DegreesCelsius;
            // 湿度
            returnValue.Humidity = sht.Humidity.Percent;
            returnValue.Agreement_type = AgreementTypeEnum.I2C;
            Console.WriteLine("温度:{0:N1} ℃\n湿度:{1:N1} %RH", returnValue.Temperature, returnValue.Humidity);
            return returnValue; ;
        }
        enum OverWriteI2cAddress : byte
        {
            AddrLow = 0x44
        }
    }
  public class Model_Sht30TempAndHumu
    {
        public double Temperature { get; set; }
        public double Humidity { get; set; }
        /// <summary>
        /// 通讯协议 i2c/rs485
        /// </summary>
        public string Agreement_type { get; set; }


    }

c#操作香橙派gpio高低电平例子

使用库:

https://gitee.com/yihong-lin/OrangePIWiringOPforCsharp


using WiringOPSharp;
//​WiringOPSharp 库需下载,引入项目即可 代码在:https://gitee.com/yihong-lin/OrangePIWiringOPforCsharp

​

    /// <summary>
    /// 香橙子调用WiringOP操作gpio Output 高低电平
    /// </summary>
    public class Device_GpioOutputMode
    {
        //运行调用例子
        public static void test()
        {
            while (true)
            {
                Console.WriteLine("输入o打开,输入c关闭");
                //控制台中输入内容
                string command = Console.ReadLine();
                if (!string.IsNullOrWhiteSpace(command))
                {
                    setGpioOutputMode(command, 4);

                }
            }
        }
        /// <summary>
        /// pin输入高电平或低电平
        /// </summary>
        /// <param name="command"></param>
        /// <param name="pinNum"></param>
        public static string setGpioOutputMode(string command, int pinNum)
        {

            try
            {
                Setup.WiringPiPiSetup();
                GPIO.PinMode(pinNum, WiringPi.Output);

                if (command == "open")
                {   //open

                    GPIO.DigitalWrite(pinNum, WiringPi.High);
                    Console.WriteLine("执行开");
                    return command ;
                }
                else if (command == "close")
                {   //close

                    GPIO.DigitalWrite(pinNum, WiringPi.Low);
                    Console.WriteLine("执行关");
                    return command ;
                }

                return "ok";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return "error";
            }
        }
}

 

电箱装好

95c7d5b22a0545408d66fa6e4c32a2cb.jpg

 

 H5界面效果

f5596f4c94534ddf8d5357ba482e8871.png

水管

209d5cb8633a464a958b44b085725c70.jpg

 

电箱安装

0631d8bf85eb44a789138b21c05cc00e.jpg

 

f2848b1f4e6348bd96a13a88604666bb.png

b12b8d20334d44ca8cba3794ea6f766e.jpg

5bb5213bc7be4b43b774a570cd628c1e.jpg

操作香橙派的引脚,需要用官方的wiringOP库,他是c++的,我这里已经将她融合到.net里面,成为一个工具类库,源代码已开源

代码在:https://gitee.com/yihong-lin/OrangePIWiringOPforCsharp

代码里面包括 香橙派 c# 引用 wiringOP 类库, 操作其它设备的代码 ,包括串口,i2c  等操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

更多相关推荐


web.config文件详解(来源于网络)

发布时间:2008-07-17 C# 操作系统 数据库
一、认识Web.config文件Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb应用程序的配置信息(如最常用的设置ASP.NETWeb应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录...

洛谷p5707上学迟到

发布时间:2022-10-31 C#
#include&lt;stdio.h&gt;#include&lt;math.h&gt;intmain(){doubles,v;scanf("%lf%lf",&amp;s,&amp;v);//因为用了向上取整函数所以用浮点数doubletime=10.00;//花十分钟时间垃圾分类inth=8;intm=0;time+=ceil(s/v);//向上取整不足一分钟也算成一分钟while(time&...

pta 7-3 判断上三角矩阵

发布时间:2022-11-12 C# C语言
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出...

Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)...

发布时间:2007-08-08 C# UI 人工智能
(一).  概要         开发&lt;数据绑定用户控件&gt;,要实现一个DataSource属性,并且能够自动识别不同的数据源,如:ArrayList,DataTable,DataSet,XML文件等.         在书上和网上找了些资料,它们一般的实现方案是把一些具有DataSource属性的数据控件DataList/Reapter等嵌套到用户控件里面实现,比较容易实现. 但也存在...

C#可空类型

发布时间:2021-10-18 C#
C#提供了一个特殊的数据类型,nullable类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个null值。例如,Nullable&lt;Int32&gt;,读作"可空的Int32",可以被赋值为-2,147,483,648到2,147,483,647之间的任意值,也可以被赋值为null值。类似的,Nullable&lt;bool&gt;变量可以被赋值为true或false或...

Winform的radioButton事件触发

发布时间:2022-10-13 C#
记一次使用winform写窗体程序时候发现的事件触发。偶然发现使用radioButton注册一个click事件,结果每次打开该窗体都会触发事件,替换成其他控件又不会有这种情况,经过观察发现radioButton的tabIndex值如果设置为0(可能是窗体里的最小值)时,新进入该窗体就会触发其事件,应该是因为radioButton默认要被赋值为真(一个GroupBox中有多个控件)。增加三种控件的事...

C# 在WinForm中按钮响应回车事件的简单方法

发布时间:2013-07-02 代码 C# 数据库
http://blog.csdn.net/diyoosjtu/article/details/7583515 Winform中的按钮要响应回车事件,是很简单的事情!只要在窗体中的属性设置一下就可以了!比如有登录窗体(Form_Login),包含有两个按钮登录 (btnLogin)和退出(btnExit),想要登录 (btnLogin)响应回车键,则设置窗体(Form_Login)的属性Accept...

ASP.NET 中的正则表达式

发布时间:2011-07-20 JAVASCRIPT C# VIEWUI 操作系统
速成课程StevenA.Smith适用范围:Microsoft®.NETFrameworkMicrosoft®ASP.NET正则表达式API摘要:正则表达式是一种处理文本的有用工具。无论是验证用户输入、搜索字符串内的模式、还是以各种有效方式重新设置文本格式,正则表达式都非常有用。下载本文的源代码。本页内容引言正则表达式使用历史简介简单表达式限定符元字符字符类预定义的集合元字符表达式示例ASP.NE...

C#设计模式(5)-Factory Method Pattern

一、 工厂方法(FactoryMethod)模式工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责...

WebServices中的SOAP究竟是什么东西?与http,xml,webservices的本质关系是什么?

发布时间:2011-04-16 语言 SERVICE C# 开发工具 XML SOAP WEB
从表面上講,Webservice就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API.可扩展的标记语言(XML)是Webservice平台中表示数据的基本格式SOAP:Webservice建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的RPC方法来调用Webservice。SOAP是在HTTP協議之上的.SOAP规范定义了SOAP消息的格式,以及怎样通过H...

FastReport中文设置教程

发布时间:2022-11-23 开发语言 C# NET
FastReport中文设置教程fastreport安装好后,界面默认是英文,在安装时我明明选择了安装中文语言包的,打开designer.exe后显示的还是英文,原来要显示中文是需要设置designer.exe的,设置如下:1、菜单栏File---&gt;SelectLanguage然后选择中文即可。没有中文就在Localization中找 ...

C#学习总结2013.10.24—2013.10.30

发布时间:2013-11-03 C# 数据库
1.C#进行sql查询时候是用参数在sql语句中,有的时候需要进行参数的动态赋值,比如插入语句中的values的值,但是当value中有单引号,双引号之类的值得时候会产生很多麻烦,而且也会产生sql注入问题,因此,c#提供参数赋值的方法。例子:       cmd.CommandText="insertintophone(StartNo,EndNo,Name)values(@StartNo,@En...

Unity shader 官网文档全方位学习(一)

发布时间:2016-02-01 C# 游戏 PHP
为什么80%的码农都做不了架构师?&gt;&gt;&gt;  原文链接:http://my.oschina.net/u/138823/blog/181131What??Shader,看起来好高级的样子,是的,这是Unity中高级进阶的必备。因此,兄弟我就在此记下我学习官网的一些心得。此为一。主要介绍些SurfaceShaders的知识。具体的大家也可去官网(如下)学习。http://docs.un...

qq个性留言

发布时间:2005-06-17 网络 语言 电话 服务器 .NET QQ
你好.我去外面骗几个人,很快回来. 您所呼叫的用户尚未安装QQ.....被人骗了,自杀中,稍后再说...亲爱的朋友你好,有事找我请大叫!亲爱的朋友你好,你现在连接到的是海狼的冰箱,放入食物后请断线,谢谢合作。亲爱的朋友你好,我正在下五子棋,上次分心把裤子输光了。这次再输会被拍裸照!我可不想让人看见,等这盘下完了一定回你。嘀,这里是自动应答,MM请再发一次,我就与你联系;JJ请再发两次,我就与你联系...

针对ASP.NET页面实时进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)...

发布时间:2019-06-26 JAVASCRIPT C# VIEWUI
    在介绍之前,先简单说一说ASP.NET服务端GZIP压缩模块的作用及工作原理,很多人编写网页的时候页面因为使用了大量的JS特效又或者放置很多大型动态广告导致了页面或脚本体积庞大,通常都会使用一些压缩工具本地对页面或脚本进行一定的压缩后再上传到服务器,但这样的压缩工具一般压缩率有限,优化自然也不明显,本文章介绍的压缩模块的作用就是对asp.net的页面或脚本等资源进行高强度GZIP压缩(一般...

经常混淆的几点语法

发布时间:2012-06-21 C CLASS C# 编译器 STRING FUN
 classProgram   {       staticvoidMain(string[]args)       {                     //1.对象初始化(器),它能初始化一个对象中的所有允许访问的字段和属性。具体地说,在创建对象的构造器调用之后,你现在可以增加一对大括号,并在其中添加一个成员初始化列表。每个成员的初始化操作都是一个赋值操作,等号左边是一个允许访问的字段属...

How to set the margin of a chart control to zero?

发布时间:2020-03-23 C#
Howtosetthemarginofachartcontroltozero?Hi,Iwanttosetthemarginbetweenthechartanditscontainertozero,plsseetheattachedfile.ItriedtosetallthePaddingandtheMarginpropertiesofthechatcontroltozero,butitdidnot...

获取母模版页的变量和属性值

发布时间:2010-03-16 C# UI
母模版: C#代码:publicpartialclassMasterPage:System.Web.UI.MasterPage{  publicintUserId{    get{return342;}  }  publicstringUserName="shenjk";  protectedvoidPage_Load(objectsender,EventArgse)  {  }} 在页面中获取该...

AssemblyBuilder和Assembly

发布时间:2012-03-20 ASSEMBLY MICROSOFT 编程 程序开发 .NET 工作
原地址:http://geocom.hhcc.net.cn/magz/wk0301/03.htm.NET平台的出现大大简化了我们的程序开发以及程序发布工作,比如对于私有的组装(Assembly,组装是.NET最基本的部署单元)可以通过简单的拷贝来安装。这是因为在.NET的PE文件中包含了自己的类型数据信息。为了对这些信息进行处理,.NET基础类库提供了System.Reflection命名空间。该...

应用程序域

发布时间:2012-05-09 CLASS C# STRING MARSHALLING OBJECT DOMAIN NULL
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Reflection;usingSystem.Runtime.Remoting;usingSystem.Threading;namespaceConsoleApplication1{   classProgram   {...

(翻译)反射的第二部分:Emit (转)

发布时间:2010-03-01 C#
原文地址http://www.cnblogs.com/rijing2004/archive/2007/08/09/emit.html作者:MikeSnell,LarsPowers翻译:today在我们之前的文章,反射的第一部分:发现和执行里,我们已经介绍了System.Reflection命名空间及其包含的类,开发人员使用这些类可以查看程序集的元数据,并且可以在运行时查找和发现类型,甚至可以调用发...

C#获取项目程序路径的方法

发布时间:2011-12-04 C#
1.Asp.NetWebForm用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”;2.C#WinForm用A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”;B:“Application.ExecutablePath”:获取当前应用程序文件的路径,包含文件的名称;C:“AppDom...

gridview 简单的分页

发布时间:2009-04-22 .NET OBJECT
allowpaging设为true 然后后台代码为:  protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)   {       GridView1.PageIndex=e.NewPageIndex;       Get_Gridview();   }  Get_Gridview();是绑定gri...

SilverLight简介和优点

发布时间:2009-04-13 JAVASCRIPT C# VIEWUI 操作系统
SilverLight介绍SilverLight是WindowsPresentATIonFoundation的一个子产品,其利用了跨浏览器Web技术进行设计,以实现多操作系统,甚至是移动设备上的无缝运行。和Flash一样,WPF/E是作为一个浏览器的插件,可以显示矢量图形、动画和视频。  Silverlight集成了多种现有Web技术和设备,它可以在Windows、Mac平台上运行,支持IE、Fi...

【转】碰到MySQL无法启动1067错误问题解决方法

发布时间:2015-04-30 C#
转自:http://www.jb51.net/article/33375.htm创建primaykey过程中发生了断电,当电脑再次启动时候,发现mysql服务无法启动,使用netstart提示1067错误;后来只能通过手工删除数据文件,日志文件,再启动服务,然后导入数据来完成今早在对一张table创建primaykey过程中发生了断电,当电脑再次启动时候,发现mysql服务无法启动,使用netst...

Windows Phone开发之路(12) 方向处理之OritentationChanged事件

发布时间:2012-02-06 C#
  当我们手机方向发生改变时,其实触发了一些事件的发生,其中PhoneApplicationFrame和PhoneApplicationPage都包含了OritentationChanged事件。PhoneApplicationPage还另外补充了一个方便的等价方法OnOritentationChanged,该虚方法是protected而且是可重写的。下面的示例演示了如何在项目中重写OnOrite...

岁首的话

发布时间:2005-12-29 C# NET
我非常喜欢编写代码,也喜欢看代码。看过的代码有好的代码,也有坏的代码,一段好的代码就像是一首优美的诗,让你回味无穷;相反,一段坏的代码会让你感觉自己正坐在垃圾堆上,不过至少也让时时的告诫自己,决不要写出那种臭飘万里的代码。代码具有灵性,你的代码的灵性就是你赋予它的。代码会说话,它会把你的个性表达的淋漓尽致,或晦涩或鲜明,或细腻有加或粗心大意。冰冻千尺,非一日之寒。写好的代码,不断的磨练自己。新年将...

浅析C# 中object sender与EventArgs e

发布时间:2010-03-17 C# 浅析
一、了解C#中的预定义事件处理机制    在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。    EventArgs是包含事件数据的类的基类,用于传递事件的细节。    EventHandler是一个委托声明如下         publicdelegatevoidEventHandler(object sender ,EventArgse )    注意这里...

手把手教你播放自己的badapple

发布时间:2022-11-24 STM32 C#
一、前言最近正好学习SD卡,顺手在LED屏上做个badapple玩玩。以为很简单,也耗费了一些时间,故作此记录。希望可以帮到朋友们。二、准备我将从各个模块的实现一一讲解,更偏向于思路。OK,我们开始吧。1.实现LED基本读写函数首先你得实现屏幕的一些基本函数,我们这以实现128X64的图像为例。代码做了详细注释,重要的是理解其中逻辑。/*******************************...

在一般处理文件中访问Session需要添加IRequiresSessionState(转载)

发布时间:2016-12-22 C#
原文:http://blog.csdn.net/cdsnaspnet/article/details/5695625s通常我们经常,通过session判定用户是否登录。还有一些临时的、重要的数据也尝尝存放在Session中。在页面我们很容易的得到Session的值,但在类中就会遇到一些问题。也知道通过下面的方法得到。System.Web.HttpContext.Current.Session["u...

Asp.net中的常用路径

发布时间:2013-07-29 .NET
记性不好,好多次都被路径问题给拦住了.我现在想得到一个资源的全URL路径,因此首先想得到网站当前的域名,端口和虚拟目录.看下表底下這張表就是各種跟BrowserRequest的網址相關的屬性與用法: 網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#tocRequest.ApplicationPath/Request.Physica...

unity的list列表操作(结合Linq整理的一些高级写法Sort、Where等)

  简单的就不介绍了,增删改查等都是最基础的,下面讲一些高级写法和实用的1、List.Sort()Unity的List.Sort有三种结果1,-1,0分别是大,小,相等。默认List的排序是升序排序,如果要降序排序,也很简单,只需要在前面加一个负号即可。List&lt;int&gt;m_temp=newList&lt;int&gt;(){6,1,3,5,4};// 升序m_temp.Sort((x...

C# 加解密之AES

发布时间:2022-11-24 .NET C# WINFORM WPF
        从这一篇开始呢,写一下常用的一些加解密方式。一般我们来说呢,对于加密,我们分为可逆和不可逆。可逆加密又可分为对称加密(AES、DES等)和非对称加密(RSA),还有就是一些编码加密等(BASE64);不可逆的呢,大部分又都称为摘要算法(MD5、SHA)。        其实上面扯这些也是白扯,对于一般用户来讲,我从明文能变成看不懂的密文就是加密了,管他叫什么,为什么要写这些,因为我...

使用VS2010 C#开发ActiveX控件

发布时间:2015-10-28 .NET VS2010 C# ACTIVEX
在网上查了一些资料也实际操作了一下,在此自己再作一次详细记录。  功能:将对机具操作的FK.dll封装成fk.ocx,注册后能在网页上对机器操作。使用VisualStudio2010.NETFramework2.0(C#)开发ActiveX步骤:创建一个应用程序解决方案,并添加一个Windows控件库项目      2.更改“项目属性-应用程序-程序集信息”设置,勾选“使程序集COM可见”  ...

关于Dictionary的TryGetValue方法

发布时间:2016-09-30 C#
这个方法时常会用到,而且很有效。TryGetValue:获取与指定的键相关联的值比如我们读取一个xml文件,让后将其写入到Dictionary中存储:[csharp] viewplain copyprivate static Dictionary&lt;string, string&gt; SqlKeyValues = null;         /// &lt;summary&gt;      ...

C#通用DBHelper类(转)

发布时间:2019-05-27 C# 数据库
C#通用DBHelper类2016年10月15日16:16:17 连军 阅读数:8758 版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/Lian_Jun/article/details/52823756          web.config: &lt;connectionStrings&gt;      &lt;add name="dh_web"...

Xamrin开发安卓笔记(一)

发布时间:2015-10-28 移动开发 JAVA C#
http://www.cnblogs.com/minCS/p/4108133.htmlXamrin开发安卓笔记(一) 安装篇环境虽然搭建的不稳定,不过还是可以开发的,又加了两个环境变量不知道有没有效果。待测。加的两个环境变量是①添加环境变量ANDROID_SDK_HOME:D:\Android\② 在path环境变量下追加路径下追加路径:D:\Android\platform-tools;D:\A...

移位操作符

发布时间:2022-11-21 算法 C# 开发语言 C语言
移位(二进制)操作符的符号是:&lt;&lt; 左移操作符&gt;&gt; 右移操作符移位操作符的操作数只能是整数而操作的是一个数的二进制而一个整数的二进制表示形式有三种:原码,反码,补码例:10的二进制表示为1010而整形占四个字节(32个bite位)也就是00000000000000000000000000001010————原码(正数的原码反码和补码相同)例:-10的二进制表示为100000...

unity-简单小游戏 控制小球(2)

发布时间:2022-10-30 C# UNITY
Rigidbody刚体组件:添加物理属性上次为小球添加了Rigidbody刚体组件之后,将小球以y轴方向拖离地面,运行游戏后小球会相当于施加了重力一样掉到地面上。 C#脚本代码将上次添加的脚本拖动到player上,这样代码就能控制游戏物体了。下面我们双击打开脚本。usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEn...

C# 用timer做成服务后 timer_Tick () 为什么不执行?

发布时间:2017-09-04 TIMER C#
不能使用窗体的Timer,他只能在窗体中使用,服务中无法使用请使用System.Timers.Timer类protectedoverridevoidOnStart(string[]args){System.Timers.Timert=newSystem.Timers.Timer(1000);//实例化Timer类,设置间隔时间为1000毫秒;t.Elapsed+=newSystem.Timers....

C#写的网络版斗地主

发布时间:2009-06-06 C# 数据结构与算法
 断断续续写了一个月,总算是把这个东西搞出来了。第一次写网络程序,所以网络部分很烂,如果网络延迟厉害的话就会出错。出牌规则和牌组之间的比较已经比较完善,能想到的组合方式都写上去了。由于本人学习C#的时间不长,而且是利用业余时间学习。所以技术不怎么样,写出来的代码总共2147行。质量个人觉得比较差劲,刚开始架构整个程序时还是按照面向对象的思考方式架构整个程序,但是架构了一部分之后后面的东西,比如网络...

C#网络版斗地主——网络部分实现

发布时间:2009-06-07 C#
源码在上一篇文章:http://www.cnblogs.com/zhubenwuzui/archive/2009/06/06/1497673.html本文是对C#网络版斗地主的总结,之后还有两篇,分别介绍地主权限的传递和出牌权限的传递,还有出牌算法和规则。地主权限的传递:http://www.cnblogs.com/zhubenwuzui/archive/2009/06/07/1498097.ht...

c#数组次序统计系列1

发布时间:2022-11-24 数据结构 算法 C#
题目未排序数组中的第K个最小/最大元素Input:arr[]={7,10,4,3,20,15},K=3Output:7方法11、按升序对输入数组进行排序2、返回排序数组中K-1索引处的元素(基于0的索引)方法2publicstaticvoidMain(){int[]arr={12,3,5,7,19};intN=arr.Length;intK=4;SortedSet&lt;int&gt;s=newS...