系统环境IDE:Visual Studio 2010语言C#执行IDE:仙盟创梦IDE开放价值核心完整代码using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Threading; using System.IO; namespace WindowsApplication1 { public partial class Form1 : Form { public int coID,llock,pdoors,st; public int flagUSB 1; public int Ret; // public Image image ; public StringBuilder bufCard new StringBuilder(200); // public Bitmap b; [DllImport(门锁模块.dll)] public static extern int GetDLLVersion(StringBuilder sDllVer); [DllImport(门锁模块.dll)] public static extern int initializeUSB(int d12); [DllImport(门锁模块.dll)] public static extern void CloseUSB(); [DllImport(门锁模块.dll)] public static extern int CardErase(int d12,int dlsCoID, StringBuilder CardNo); [DllImport(门锁模块.dll)] public static extern int GuestCard(int d12, int dlsCoID, int CardNo, int dai, int LLock, int pdoors, string BDate, string EDate, string RoomNo, StringBuilder cardHexStr); [DllImport(门锁模块.dll)] public static extern int Buzzer(int d12, int time); [DllImport(门锁模块.dll)] public static extern int ReadCard(int d12, StringBuilder sDllVer); [DllImport(门锁模块.dll)] public static extern int GetCardTypeByCardDataStr(string cardHexStr, StringBuilder cardtype); //函数返回的数据串解析锁号 [DllImport(门锁模块.dll)] public static extern int GetGuestLockNoByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder LockNo); //函数返回的数据串解析发卡时间 [DllImport(门锁模块.dll)] public static extern int GetGuestSTimeByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder ETime); //函数返回的数据串解析发卡时间 [DllImport(门锁模块.dll)] public static extern int GetGuestETimeByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder ETime); //根据ReadRecord函数返回的数据串解析开门记录 public Boolean rdCard() { st ReadCard(1, bufCard); if (st ! 0) { MessageBox.Show(读卡失败 st.ToString()); return false; } else { } return true; } public string getcardtype(string ctpye) { string outtype ; switch (ctpye) { case 0: outtype 授权卡; break; case 1: outtype 记录卡; break; case 2: outtype 房号设置卡; break; case 3: outtype 时间设置卡; break; case 4: outtype 限制卡[挂失卡]; break; case 5: outtype 组号设置卡; break; case 6: outtype 客人卡; break; case 7: outtype 退房卡; break; case 8: outtype 组控卡; break; case 9: outtype 未知卡[无此类型]; break; case A: outtype 应急卡; break; case B: outtype 总控卡; break; case C: outtype 楼栋卡; break; case D: outtype 楼层卡; break; case E: outtype 未知卡[无此类型]; break; case F: outtype 空白卡; break; } return outtype; } public string getcardtype(int ctpye) { string outtype; switch (ctpye) { case 6: outtypeGuest Card; break; } return outtype; } public Form1() { InitializeComponent(); } public static byte[] ToBytes(string _Source) { try { byte[] Result System.Text.Encoding.Default.GetBytes(_Source); return Result; } catch (Exception myE) { throw myE; } } /// summary /// 将指定的byte[]转换成IMAGE /// /summary /// param name_Source要转换的byte[] /param /// returns /returns public static System.Drawing.Image ToImage(byte[] _Source) { try { System.IO.MemoryStream Result new System.IO.MemoryStream(_Source); System.Drawing.Image myImage System.Drawing.Image.FromStream(Result); return myImage; } catch (Exception myE) { throw myE; } } private void Form1_Load(object sender, EventArgs e) { textBox7.Text DateTime.Now.AddDays(1).ToString(yyMMddHHmmss); } private void button9_Click(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { Close(); } private void button5_Click(object sender, EventArgs e) { Buzzer(1, 50); //发卡器鸣叫50x10毫秒 } private void button3_Click(object sender, EventArgs e) { bufCard new StringBuilder(551501C9070000E38181010060E233A5E23BA5) ; if (!rdCard()) //先读卡 { return; } textBox2.Text bufCard.ToString(); if (bufCard.ToString().Length 76) { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n 白色框是完整卡数据); } else { if ((bufCard.ToString().Substring(76, 4).Equals(0400)) || (bufCard.ToString().Substring(76, 4).Equals(0200))) { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n M1卡的固有ID号 bufCard.ToString().Substring(76, 12) \n 白色框是完整卡数据); } else { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n 白色框是完整卡数据); } } } private void button6_Click_1(object sender, EventArgs e) { //退房时间 StringBuilder sa1; sa1 new StringBuilder(500); st GuestCard(1, Convert.ToInt32(textBox3.Text), 0, Convert.ToInt32(textBox1.Text)%256, 0, 0, DateTime.Now.ToString(yyMMddHHmmss), textBox7.Text, textBox8.Text, sa1); //卡数据 if (st ! 0) { MessageBox.Show(调用发卡函数失败 st.ToString()); } else { textBox2.Text bufCard.ToString(); // textBox2.Text sa1.ToString(); MessageBox.Show(调用发卡函数成功); } } private void button2_Click(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(1); GetCardTypeByCardDataStr(bufCard.ToString(), dllversion); MessageBox.Show(getcardtype(dllversion.ToString().Substring(0, 1))); // textBox2.Text getcardtype(dllversion.ToString().Substring(0, 1)); } private void button1_Click_1(object sender, EventArgs e) { } private void button7_Click_1(object sender, EventArgs e) { } private void button8_Click(object sender, EventArgs e) { } private void button10_Click(object sender, EventArgs e) { CloseUSB(); Application.Exit(); } private void label3_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void label5_Click(object sender, EventArgs e) { } private void button12_Click(object sender, EventArgs e) { st initializeUSB(1); //0表示有驱USB, 1表示proUSB if (st ! 0) { MessageBox.Show(打开端口失败 st.ToString()); } else { MessageBox.Show(端口打开成功); } } private void button1_Click(object sender, EventArgs e) { StringBuilder sa1; sa1 new StringBuilder(500); st GetDLLVersion(sa1); //卡数据 MessageBox.Show(sa1.ToString()); } private void button4_Click_1(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(8); coID Convert.ToInt32(textBox3.Text); GetGuestLockNoByCardDataStr(coID, bufCard.ToString(), dllversion); MessageBox.Show(dllversion.ToString()); // textBox2.Text dllversion.ToString(); } private void button7_Click(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(10); coID Convert.ToInt32(textBox3.Text); GetGuestETimeByCardDataStr(coID, bufCard.ToString(), dllversion); MessageBox.Show(dllversion.ToString()); //textBox2.Text dllversion.ToString(); } private void button8_Click_1(object sender, EventArgs e) { } private void button8_Click_2(object sender, EventArgs e) { if (!rdCard()) //先读卡 { MessageBox.Show(读卡失败); return; } if (bufCard.ToString().Substring(24, 8).Equals(FFFFFFFF)) { MessageBox.Show(此卡是空白卡请换一张能开门的卡); return; } String s bufCard.ToString().Substring(10,4); int i Convert.ToInt32(s,16)%16384; String s1 bufCard.ToString().Substring(7, 3); i i Convert.ToInt32(s1, 16)*65536 ; textBox3.Text Convert.ToString(i); } private void button9_Click_1(object sender, EventArgs e) { StringBuilder CardNostr; CardNostr new StringBuilder(100); st CardErase(1,Convert.ToInt32(textBox3.Text), CardNostr); if (st 0) { textBox2.Text CardNostr.ToString(); } else { MessageBox.Show(注销失败); } } } }人人皆为创造者共创方能共成长每个人都是使用者也是创造者是数字世界的消费者更是价值的生产者与分享者。在智能时代的浪潮里单打独斗的发展模式早已落幕唯有开放连接、创意共创、利益共享才能让个体价值汇聚成生态合力让技术与创意双向奔赴实现平台与伙伴的快速成长、共赢致远。原创永久分成共赴星辰大海原创创意共创、永久收益分成是东方仙盟始终坚守的核心理念。我们坚信每一份原创智慧都值得被尊重与回馈以永久分成锚定共创初心让创意者长期享有价值红利携手万千伙伴向着科技星辰大海笃定前行拥抱硅基 生命与数字智能交融的未来共筑跨越时代的数字文明共同体。东方仙盟拥抱知识开源共筑数字新生态在全球化与数字化浪潮中东方仙盟始终秉持开放协作、知识共享的理念积极拥抱开源技术与开放标准。我们相信唯有打破技术壁垒、汇聚全球智慧才能真正推动行业的可持续发展。开源赋能中小商户通过将前端异常检测、跨系统数据互联等核心能力开源化东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案让更多商家能够平等享受数字转型的红利。共建行业标准我们积极参与国际技术社区与全球开发者、合作伙伴共同制定开放协议 与技术规范推动跨境零售、文旅、餐饮等多业态的系统互联互通构建更加公平、高效的数字生态。知识普惠共促发展通过开源社区 、技术文档与培训体系东方仙盟致力于将前沿技术转化为可落地的行业实践赋能全球合作伙伴共同培育创新人才推动数字经济 的普惠式增长阿雪技术观在科技发展浪潮中我们不妨积极投身技术共享。不满足于做受益者更要主动担当贡献者 。无论是分享代码、撰写技术博客还是参与开源项目 维护改进每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地我们携手在此探索硅基 生命为科技进步添砖加瓦。Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Dont just be the one reaping all the benefits; step up and be a contributor too. Whether youre tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. Were gonna team up and explore the whole silicon - based life thing, and in the process, well be fueling the growth of technology
酒店门锁V10SDK接口C#-幽冥大陆(一百25)—东方仙盟
系统环境IDE:Visual Studio 2010语言C#执行IDE:仙盟创梦IDE开放价值核心完整代码using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Threading; using System.IO; namespace WindowsApplication1 { public partial class Form1 : Form { public int coID,llock,pdoors,st; public int flagUSB 1; public int Ret; // public Image image ; public StringBuilder bufCard new StringBuilder(200); // public Bitmap b; [DllImport(门锁模块.dll)] public static extern int GetDLLVersion(StringBuilder sDllVer); [DllImport(门锁模块.dll)] public static extern int initializeUSB(int d12); [DllImport(门锁模块.dll)] public static extern void CloseUSB(); [DllImport(门锁模块.dll)] public static extern int CardErase(int d12,int dlsCoID, StringBuilder CardNo); [DllImport(门锁模块.dll)] public static extern int GuestCard(int d12, int dlsCoID, int CardNo, int dai, int LLock, int pdoors, string BDate, string EDate, string RoomNo, StringBuilder cardHexStr); [DllImport(门锁模块.dll)] public static extern int Buzzer(int d12, int time); [DllImport(门锁模块.dll)] public static extern int ReadCard(int d12, StringBuilder sDllVer); [DllImport(门锁模块.dll)] public static extern int GetCardTypeByCardDataStr(string cardHexStr, StringBuilder cardtype); //函数返回的数据串解析锁号 [DllImport(门锁模块.dll)] public static extern int GetGuestLockNoByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder LockNo); //函数返回的数据串解析发卡时间 [DllImport(门锁模块.dll)] public static extern int GetGuestSTimeByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder ETime); //函数返回的数据串解析发卡时间 [DllImport(门锁模块.dll)] public static extern int GetGuestETimeByCardDataStr(int dlsCoID, string cardHexStr, StringBuilder ETime); //根据ReadRecord函数返回的数据串解析开门记录 public Boolean rdCard() { st ReadCard(1, bufCard); if (st ! 0) { MessageBox.Show(读卡失败 st.ToString()); return false; } else { } return true; } public string getcardtype(string ctpye) { string outtype ; switch (ctpye) { case 0: outtype 授权卡; break; case 1: outtype 记录卡; break; case 2: outtype 房号设置卡; break; case 3: outtype 时间设置卡; break; case 4: outtype 限制卡[挂失卡]; break; case 5: outtype 组号设置卡; break; case 6: outtype 客人卡; break; case 7: outtype 退房卡; break; case 8: outtype 组控卡; break; case 9: outtype 未知卡[无此类型]; break; case A: outtype 应急卡; break; case B: outtype 总控卡; break; case C: outtype 楼栋卡; break; case D: outtype 楼层卡; break; case E: outtype 未知卡[无此类型]; break; case F: outtype 空白卡; break; } return outtype; } public string getcardtype(int ctpye) { string outtype; switch (ctpye) { case 6: outtypeGuest Card; break; } return outtype; } public Form1() { InitializeComponent(); } public static byte[] ToBytes(string _Source) { try { byte[] Result System.Text.Encoding.Default.GetBytes(_Source); return Result; } catch (Exception myE) { throw myE; } } /// summary /// 将指定的byte[]转换成IMAGE /// /summary /// param name_Source要转换的byte[] /param /// returns /returns public static System.Drawing.Image ToImage(byte[] _Source) { try { System.IO.MemoryStream Result new System.IO.MemoryStream(_Source); System.Drawing.Image myImage System.Drawing.Image.FromStream(Result); return myImage; } catch (Exception myE) { throw myE; } } private void Form1_Load(object sender, EventArgs e) { textBox7.Text DateTime.Now.AddDays(1).ToString(yyMMddHHmmss); } private void button9_Click(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { Close(); } private void button5_Click(object sender, EventArgs e) { Buzzer(1, 50); //发卡器鸣叫50x10毫秒 } private void button3_Click(object sender, EventArgs e) { bufCard new StringBuilder(551501C9070000E38181010060E233A5E23BA5) ; if (!rdCard()) //先读卡 { return; } textBox2.Text bufCard.ToString(); if (bufCard.ToString().Length 76) { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n 白色框是完整卡数据); } else { if ((bufCard.ToString().Substring(76, 4).Equals(0400)) || (bufCard.ToString().Substring(76, 4).Equals(0200))) { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n M1卡的固有ID号 bufCard.ToString().Substring(76, 12) \n 白色框是完整卡数据); } else { MessageBox.Show(发卡流水号 bufCard.ToString().Substring(24, 8) \n 白色框是完整卡数据); } } } private void button6_Click_1(object sender, EventArgs e) { //退房时间 StringBuilder sa1; sa1 new StringBuilder(500); st GuestCard(1, Convert.ToInt32(textBox3.Text), 0, Convert.ToInt32(textBox1.Text)%256, 0, 0, DateTime.Now.ToString(yyMMddHHmmss), textBox7.Text, textBox8.Text, sa1); //卡数据 if (st ! 0) { MessageBox.Show(调用发卡函数失败 st.ToString()); } else { textBox2.Text bufCard.ToString(); // textBox2.Text sa1.ToString(); MessageBox.Show(调用发卡函数成功); } } private void button2_Click(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(1); GetCardTypeByCardDataStr(bufCard.ToString(), dllversion); MessageBox.Show(getcardtype(dllversion.ToString().Substring(0, 1))); // textBox2.Text getcardtype(dllversion.ToString().Substring(0, 1)); } private void button1_Click_1(object sender, EventArgs e) { } private void button7_Click_1(object sender, EventArgs e) { } private void button8_Click(object sender, EventArgs e) { } private void button10_Click(object sender, EventArgs e) { CloseUSB(); Application.Exit(); } private void label3_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void label5_Click(object sender, EventArgs e) { } private void button12_Click(object sender, EventArgs e) { st initializeUSB(1); //0表示有驱USB, 1表示proUSB if (st ! 0) { MessageBox.Show(打开端口失败 st.ToString()); } else { MessageBox.Show(端口打开成功); } } private void button1_Click(object sender, EventArgs e) { StringBuilder sa1; sa1 new StringBuilder(500); st GetDLLVersion(sa1); //卡数据 MessageBox.Show(sa1.ToString()); } private void button4_Click_1(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(8); coID Convert.ToInt32(textBox3.Text); GetGuestLockNoByCardDataStr(coID, bufCard.ToString(), dllversion); MessageBox.Show(dllversion.ToString()); // textBox2.Text dllversion.ToString(); } private void button7_Click(object sender, EventArgs e) { if (!rdCard()) //先读卡 { return; } StringBuilder dllversion; dllversion new StringBuilder(10); coID Convert.ToInt32(textBox3.Text); GetGuestETimeByCardDataStr(coID, bufCard.ToString(), dllversion); MessageBox.Show(dllversion.ToString()); //textBox2.Text dllversion.ToString(); } private void button8_Click_1(object sender, EventArgs e) { } private void button8_Click_2(object sender, EventArgs e) { if (!rdCard()) //先读卡 { MessageBox.Show(读卡失败); return; } if (bufCard.ToString().Substring(24, 8).Equals(FFFFFFFF)) { MessageBox.Show(此卡是空白卡请换一张能开门的卡); return; } String s bufCard.ToString().Substring(10,4); int i Convert.ToInt32(s,16)%16384; String s1 bufCard.ToString().Substring(7, 3); i i Convert.ToInt32(s1, 16)*65536 ; textBox3.Text Convert.ToString(i); } private void button9_Click_1(object sender, EventArgs e) { StringBuilder CardNostr; CardNostr new StringBuilder(100); st CardErase(1,Convert.ToInt32(textBox3.Text), CardNostr); if (st 0) { textBox2.Text CardNostr.ToString(); } else { MessageBox.Show(注销失败); } } } }人人皆为创造者共创方能共成长每个人都是使用者也是创造者是数字世界的消费者更是价值的生产者与分享者。在智能时代的浪潮里单打独斗的发展模式早已落幕唯有开放连接、创意共创、利益共享才能让个体价值汇聚成生态合力让技术与创意双向奔赴实现平台与伙伴的快速成长、共赢致远。原创永久分成共赴星辰大海原创创意共创、永久收益分成是东方仙盟始终坚守的核心理念。我们坚信每一份原创智慧都值得被尊重与回馈以永久分成锚定共创初心让创意者长期享有价值红利携手万千伙伴向着科技星辰大海笃定前行拥抱硅基 生命与数字智能交融的未来共筑跨越时代的数字文明共同体。东方仙盟拥抱知识开源共筑数字新生态在全球化与数字化浪潮中东方仙盟始终秉持开放协作、知识共享的理念积极拥抱开源技术与开放标准。我们相信唯有打破技术壁垒、汇聚全球智慧才能真正推动行业的可持续发展。开源赋能中小商户通过将前端异常检测、跨系统数据互联等核心能力开源化东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案让更多商家能够平等享受数字转型的红利。共建行业标准我们积极参与国际技术社区与全球开发者、合作伙伴共同制定开放协议 与技术规范推动跨境零售、文旅、餐饮等多业态的系统互联互通构建更加公平、高效的数字生态。知识普惠共促发展通过开源社区 、技术文档与培训体系东方仙盟致力于将前沿技术转化为可落地的行业实践赋能全球合作伙伴共同培育创新人才推动数字经济 的普惠式增长阿雪技术观在科技发展浪潮中我们不妨积极投身技术共享。不满足于做受益者更要主动担当贡献者 。无论是分享代码、撰写技术博客还是参与开源项目 维护改进每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地我们携手在此探索硅基 生命为科技进步添砖加瓦。Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Dont just be the one reaping all the benefits; step up and be a contributor too. Whether youre tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. Were gonna team up and explore the whole silicon - based life thing, and in the process, well be fueling the growth of technology