軟體開發(軟件開發)

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

室內設計、裝潢、窗簾報價估算軟體

網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。

商用軟體-客製化設計

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

IOT 物聯網-系統開發

根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發

雲端VPS虛擬主機租用

我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。

ERP軟體客製化導入

ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。

搜尋引擎最佳化SEO

搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。

服務宗旨

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

我們的成立宗旨就是要以最猛的IT技術讓這個世界更Smart,在我們貫徹我們裡想的同時,我們希望可以把我們所開發的系統帶給台灣的中小企業,除了要推薦好的東西之外,我們也希望做點改變,所以我們的第一目標就是要使用最好用的系統再加上您寶貴的創意,不僅僅可以節省你大量的荷包,還可以有一個像樣的網站。我們可以幫你做的有

企業管理
  • 策略管理
  • 目標管理
  • 行銷管理
  • 財會管理
  • ERP導入
  • 企業流程自訂
資訊管理
  • 網站架設
  • 虛擬化/雲端架設
  • 主機代管
  • 私有雲建制與導入
軟體開發
  • UML設計
  • 版本控管
  • 企業軟體開發
  • APP開發
  • 網頁設計
資訊安全
  • 網頁弱點掃描
  • 主機弱點掃描
  • 木馬檢測
  • 資安鑑識
  • 設計網路架構
  • 資安監控
行銷
  • 關鍵字SEO
  • 社群網路行銷
  • 部落格行銷
  • FaceBook 粉絲團
其他
  • 協助企業申請Google Email
好玩工具開發

講出你的創意吧!沒有甚麼是資訊辦不到的

顯示具有 開發 標籤的文章。 顯示所有文章
顯示具有 開發 標籤的文章。 顯示所有文章

2022年12月20日 星期二

紅外線異常監測 & 放電檢測報告 & 機電線材報價系統

    感謝新竹科技大廠 聯合機電股份有限公司 以及 啟洋科技工程股份有限公司  因為多次洽談合作,因為專業的信任 給網智數位軟體開發團隊 陸續進行開發 紅外線異常監測、紅外線異常統計表、紅外線異常趨勢圖、以及許多自動化統計報表,異常與檢測報告管理系統機電線材報價系統 ,也讓我們開發團隊更深入了 機電公司 的營運作業流程與產業知識。






          








    

    而服務了該知名產業公司後,更深深發覺客戶主管的經驗與機電專業知識、線材、環境感測專業水準,讓 Allen 我更有使命傳遞公司的企業價值,就是專業服務、與客戶共同努力透過 IT 資訊科技的技術、軟體研發能力,盡可能協助各產業客戶完成系統化管理、數字化管理、智慧化管理。
        【客戶介紹】 啟洋科技工程股份有限公司除了擁有優異的專業技術,能勝任各種高難度工程外,其豐富的經驗、用心的服務與完善的公司制度及人員組織,為客戶提供以最佳的事前規劃與售後服務,更以24小時待命狀態,立即支援客戶施予緊急搶修,以維護生產線之有效運轉,堅持專業技術並提供客戶具有競爭力的服務,是啟洋公司達成企業雙贏的基本理念,也正是您諮商洽詢、安心託付的最佳系統工程專業團隊,更是您信賴的最佳伙伴。



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫行動號碼:0920-883-870
黃先生 Allen

2017年8月31日 星期四

軟體對企業的價值(軟體開發、軟件開發、客制化軟體)

    這半年,我發覺委託我們開發軟體的客戶,幾乎都再次委託我們進行擴充功能,而且值得開心的,除了以往企業管理軟體系統(ERP、進銷存、CRM、POS)等,開始很多客戶為了創造原來產品的價值,開始重視軟體可以帶來的價值。




    例如,其中一個客戶工業設備空調大廠原本在自有的產品,具有一定的市場競爭性,但客戶董事長,認為如果可以透過軟體來提升使用設備的效益,所以再次委託我們開發軟體,來偵測使用設備的用電量趨勢圖、溫度的變化、散熱效果等,來產生各種圖表、趨勢圖,給客戶不止使用硬體設備,還可以因為使用硬體設備,透過軟體來增加附加價值,給客戶建議用電量使用狀況,而且可以透過軟體管理界面來管理大量的設備,例如批次關閉設備、開啟設備、設定警示音效,當達到某個電量數據、溫度數據,可以發出警報。


    上面我提客戶只是近來一個案例,這個客戶董事長非常有前瞻性思維,他把軟體直接附贈給購買設備的終端客戶,讓原本已經具有競爭性產品設備、更因為軟體的價值,來建立與競爭同業更大的產品優勢,其他競爭廠商還幾乎停留在設備跟價格定價的商業手法。



(其他參考文章)
MPS主生產計畫專文介紹(一)
MRPⅡ/ERP 能力需求計畫原理
庫存管理-概念與釐清
庫存管理探討-VMI
真正的庫存量形成探討
庫存管理的中樞控管法則(上)
庫存管理的中樞控管法則(下)
庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)
BOM表管理與設定﹣輔料是否需輸入BOM
何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】
ERP 產品成本管理與計算
庫存量正確性衡量法則
粗能力需求計畫(RCCP) - 專文介紹
如何利用軟體來協助企業銷售統計和分析
開發進銷存、ERP、PDM,物料欄位收集與建立重要性(ERP開發、軟體開發、進銷存)
ERP 各種計劃階段的差異

ERP 系統的淺談與優勢
[ ERP/MRP 系統 ] - 專案導入深入剖析





網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2017年4月9日 星期日

感謝-台灣機電 導入 紅外線IR與局部放電 分析測試報告軟體(軟體開發、客製化軟體、系統開發)

    在機電行業領域著名的台灣機電顧問股份有限公司,與網智數位接洽一段時間,一直評估想導入我們研發的紅外線與局部放電管理軟體 ,因為客戶服務的專業與服務品質,累積了許許多多的客戶,而這些客戶的現場測試報告都是投入大量的工程師進行人工整理圖片、人工整理異常溫度、異常狀況、以及手寫各式各樣的測試、拍攝報告,而且一個時間間隔就是例行處理這些實務,也因為耗用許多工程師的人工成本、加上資料都無法有效統整、分析、歸納,台灣機電評估我們研發的管理軟體,可以有效的整合所有的現場工程師拍攝回來的紅外線IR與局部放電圖,上傳至管理軟體,再至系統表單輸入與核對異常數據、拍攝資料無誤後,管理軟體就自動儲存客戶的所有拍攝位置、盤名、天氣狀況、環境溫度、濕度、相關電流(R、S、T、N)、額定電流、檢測照片、可見光圖片等欄位資料,往後都可以查詢歷史資料、交叉比對同一個地點的拍攝資料、並轉成匯出給客戶的正式書面報告。






     在一個行業處於競爭的市場中,必須在企業的專業面、服務面、以及資訊數位化的普及,企業必須在原有的營運模式中,思考如何在創新、利用資訊科技來協助企業的效率提升、數字化管理,一家企業給客戶的資料,必須迅速及時性、正確性的提供委外的分析報告資料,而這也是台灣機電顧問股份有限公司與我們接洽許久,評估必須導入一個好的軟體,提升企業的服務專業形象、減少不必要的人事成本。



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2017年2月7日 星期二

微軟可能推出 Win10雲端版系統 (軟體開發、軟體客制化、ERP 軟體)

      微軟正在開發新的Windows 10雲端版,有望成為該公司針對Chromebook發起的最新挑戰,而這款系統的最新版本已經在網上洩露。

Cfem-fyafqxp5657404

據多家媒體報導,Windows 10雲端版是一款輕系統,可能是針對微軟的ARM戰略設計的。一個 Twitter用戶在網上披露了Windows 10雲端版的ISO鏡像文件,甚至可以直接下載安裝。但業內人士推薦在虛擬機上安裝這款系統。


與之前的報導相同,Windows 10雲端版只允許用戶運行通過Windows Store購買的UWP應用,如果安裝其他應用則會顯示“不適配該系統”的提示信息。另外,系統對話框還會提醒用戶,“該版本希望保護您及您的設備,而且只能運行Windows Store應用。”

但值得注意的是,用戶可以從Windows Store下載部分Win32應用。這些Win32應用是通過微軟自己的桌面應用轉化器進駐Windows Store的,因此雖然可以通過Windows Store下載,但卻無法真正安裝在Windows 10雲端版上。

由於這只是早期版本的Windows 10雲端版,所以現在還不能完全確定微軟不允許用戶運行通過Windows Store下載的Win32應用。微軟有可能會在不遠的將來支持這項功能。

業內人士認為,Windows 10雲端版繼承了Windows RT的“遺志”,後者因為Windows Store的應用數量較少而未能取得成功。然而,從Windows Store和UWP應用的現狀來看,目前似乎與之前並無太​​大不同,很多用戶仍然非常依賴經典的Win32應用。

Windows 10雲端版可能幫助微軟與穀歌Chromebook直接競爭,通過廉價Windows 10設備提供一流的性能和順暢的用戶體驗。

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2017年1月2日 星期一

感謝2016年,邁向2017年新目標(軟體開發、客製化軟體、系統設計)

       新的一年2017年的開始,我非常感謝我團隊的付出,去年成績成長了許多,也因此積極擴充了團隊人數(也歡迎相關人才加入我公司團隊),尤其最讓我開心的是委託我們進行軟體客製化服務的幾乎都是該產業領域的佼佼者,例如地板業企業管理軟體、窗簾業ERP、馬達業-產品選型系統、機電顧問業-紅外線與局部放電測試管理軟體、醫療生技上櫃公司、大陸集團清華同方、以及工業冷凍空調設備、全凍式儲冰的領導廠商進行-圖控軟體開發功能擴充專案、還是其他林林總總的進銷存、網頁設計委託案,這都是客戶對網智數位的信任,當然還有許多還必須繼續開發改進的。

      S__24567851

           在這邊我也代表網智數位-軟體開發團隊,感謝客戶的信任,專案開發過程中會有問題的產生、時間的磨合、知識的互相學習,我也期待內部團隊在經歷各種專案壓力下,吸收各客戶的經驗,保持開發一個好的軟體,為客戶帶來實際的效益。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年11月6日 星期日

Windows 10 UWP 存取 JSON 格式 - 程式實作講解(軟體開發、客製化軟體、程式設計、程式開發)

      在我們開發各種專案時,一定多少都會需要存取各種跨平台傳輸的資料,目前最普遍的傳輸格式為 XML 與 JSON , 而今天我想要深入講解在 Windows 10 Universal APP (UWP)平台下,如何讀取跟儲存 JSON 格式資料。

      images


    JSON 的全名為 Java Script Object Notation , 它是一種輕量級的資料傳輸交換格式語言,特點是容易閱讀、依字串為基礎,格式都是經過壓縮地所以在網路傳輸過程,佔用的頻寬極小,因此被廣泛地應用在跨平台、跨程式語言。
JSON 的格式在宣告一個類別/物件,是用 大括號 { };宣告一個陣列使用 中括號 [ ] ;而在大括號裡面,是使用 名稱 :值 ,下圖是官方的範例圖解釋
1356331778-696014507


例如 我在此 有個 員工類別 ,分別屬性有員工編號、姓名、職位、學歷,則對應的 JSON 格式為 
(JSON Code)
var empJsonObj = { “員工編號”:“emp001”, “姓名”: “台灣李奧納多,”“職位”: “技術總監”,"年齡”:33 } ;

接下來,就是要開始講解如何在 Windows 10 Universal APP (UWP)平台,存取 JSON 格式的支援與程式開發技巧。
在 Windows 10 UWP 平台,主要有 2 種技巧來存取 JSON 格式,第一種是使用 DataContractJsonSerializer (MSDN 介紹),透過 DataContractJsonSerializer 來對 JSON 數據進行序列化與反系列化動作 ;而第二種是使用 JsonObject 類別來自行定義 JSON 物件。這兩種方式我都會在這篇完整介紹。


1.透過 DataContractJsonSerializer 對 JSON 資料進行序列化與反序列化
      使用 DataContractJsonSerializer 類別來對 JSON 數據進行序列化與反序列化,這是最簡單的方式,所謂序列化過程就是把 實體類別物件 轉成 JSON 格式化的字串,反之 反序列化 過程,就是把 JSON 物件字串({ 名稱:值,名稱1:值1….}) 轉換成對應的 .NET 類別。

下圖,是實際程式範例
image


image



2.透過使用 JsonObject 類別來自行定義 JSON 物件
這個就讓我直接用實際程式碼來講解….
首先我先新增2個類別 ,分別為 員工類別 (Employee)和研發群組類別(RDGroup),在此我假設一個員工可以同時歸屬多於于一個研發群組以上。

底下為 員工類別程式碼:

   /// <summary>
   /// 員工類別
   /// </summary>
   public class Employee
   {
       private const string idKey = "id";
       private const string nameKey = "name";
       private const string rdKey = "rd";
       private const string ageKey = "age";
       private const string enableKey = "enable";

       public Employee()
       {
           Id = "";
           Name = "";
           RDGroups = new ObservableCollection<RDGroup>();
       }

       public Employee(string jsonString) : this()
       {
           JsonObject jsonObject = JsonObject.Parse(jsonString);
           Id = jsonObject.GetNamedString(idKey, "");
           Name = jsonObject.GetNamedString(nameKey, "");
           Age = jsonObject.GetNamedNumber(ageKey, 0);
           Enable = jsonObject.GetNamedBoolean(enableKey, false);

           foreach (IJsonValue jsonValue in jsonObject.GetNamedArray(rdKey, new JsonArray()))
           {
               if (jsonValue.ValueType == JsonValueType.Object)
               {
                   RDGroups.Add(new RDGroup(jsonValue.GetObject()));
               }
           }
       }
       public string Stringify()
       {
           JsonArray jsonArray = new JsonArray();
           foreach (RDGroup group in RDGroups)
           {
               jsonArray.Add(group.ToJsonObject());
           }

           JsonObject jsonObject = new JsonObject();
           jsonObject[idKey] = JsonValue.CreateStringValue(Id);
           jsonObject[nameKey] = JsonValue.CreateStringValue(Name);
           jsonObject[rdKey] = jsonArray;
           jsonObject[ageKey] = JsonValue.CreateNumberValue(Age);
           jsonObject[enableKey] = JsonValue.CreateBooleanValue(Enable);

           return jsonObject.Stringify();
       }

       public string Id { get; set; }
       public string Name { get; set; }
       public ObservableCollection<RDGroup> RDGroups { get; set; }
       public double Age { get; set; }
       public bool Enable { get; set; }

   }

底下為 研發群組類別(RDGroup)程式碼:

  /// <summary>
  /// 研發群組 類別,一個員工可以歸屬多個研發群組
  /// </summary>
  public class RDGroup
  {
      private const string idKey = "id";
      private const string rdKey = "rd";
      private const string nameKey = "name";

      public RDGroup()
      {
          Id = "";
          Name = "";
      }

      public RDGroup(JsonObject jsonObject)
      {
          JsonObject schoolObject = jsonObject.GetNamedObject(rdKey, null);
          if (schoolObject != null)
          {
              Id = schoolObject.GetNamedString(idKey, "");
              Name = schoolObject.GetNamedString(nameKey, "");
          }
      }

      public JsonObject ToJsonObject()
      {
          JsonObject schoolObject = new JsonObject();
          schoolObject.SetNamedValue(idKey, JsonValue.CreateStringValue(Id));
          schoolObject.SetNamedValue(nameKey, JsonValue.CreateStringValue(Name));

          JsonObject jsonObject = new JsonObject();
          jsonObject.SetNamedValue(rdKey, schoolObject);
          return jsonObject;
      }

      public string Id { get; set; }
      public string Name { get; set; }
  }



再來我設計一個前端UI界面,作為讀取與寫入 JSON 的案例實作

前端界面
image



在執行存檔時,我們將新增一個 Employee 類別,並透過 JsonObject 轉成(序列化)為 JSON 字串,儲存在設定檔。
image

而在【讀取資料】時,是透過 JsonObject 進行反序列化,將 Json String 轉回成 .Net 的 Employee 類別(Class)
image



程式執行結果畫面
存檔
image


讀取資料
image






網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen





2016年11月2日 星期三

工業4.0 的好影片介紹

        最近跟同業、客戶、各種研討會,大家除了物聯網、大數據,還會談另外一個名詞,叫做工業 4.0,剛好看到一個天下雜誌非常好的影片介紹,在此轉介分享,台灣的驅動新型力量..






網智數位-軟體開發(軟件開發) 
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年11月1日 星期二

機電行業-軟體解決方案(紅外線、局部放電、點料表)

        今年我公司針對機電行業領域,開發出一個針對紅外線、局部放電檢測的測試報告,轉為一個獨立的專案管理報告,該管理軟體可以協助將客戶歷年來的紅外線、局部放電的報告資料,如拍攝位置、拍攝盤名、檢測人員、天氣狀況、環境溫度、濕度、相關電流(R、S、T、N)、額定電流、檢測照片、可見光圖片等欄位作有效資料管理。

image

         並且針對每個檢測報告的的【判定結果】也會根據溫度、電流等條件進行結果的系統判定,可以大幅減少人工判定作業的誤差與錯誤,如下圖

image

           在每個報告項目我們都可以指定報告是否有異常原因、異常項目(後續我們的管理軟體,都可以針對所有異常原因、異常項目)進行分析統計趨勢報表,作為管理層級人員的追蹤檢討事項、以及執行面的調整。

image

管理軟體部分統計圖表

image

image

image

image

image


以上所有功能皆可匯出 Excel 檔作為報表、提供給客戶,提升機電產業的管理績效,以往我們的客戶在還沒有使用我們的管理軟體時,每次產生一個報告都需要人工在 Excel、Word作業,行政助理到處複製貼上,初步估計人工花費至少超過10天,現在使用我們的軟體,只需要一個按鈕就可以馬上產出給客戶一個完整的報告),而且案子一多根本無法有效作管理,例如想知道目前有設備過熱的地點有哪些、散熱發生的又有哪些;所以使用我們的管理軟體後,可以有效的跟客戶呈現一個即時的報告,作為提升機電產業的競爭性,目前已經有多家新竹大廠導入我們的軟體,如果您有這個需求,可以聯繫我們,我們可以安排時間到現場Demo我們的系統。




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870 

公司電話:02-55991310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen












2016年10月27日 星期四

Windows 10 的 UDP 與 TCP 網路通訊實作案例二(軟體開發、軟件開發、程式設計、程式開發)

      這篇文章主要是續之前另外一篇文章 UDP 網路通訊處理,這次是繼續講解 TCP 網路通訊處理,與UDP 協定不同的是,TCP協定是更加嚴謹,它是基於確認連接是可靠性的,也就是在發生通訊傳輸前,客戶端(Client)必須確認是連接到伺服器(Server)端,因為 TCP 對數據封包的次序與完整性要求相對嚴格,這樣才能確保數據傳輸過程可以正確無誤地送達目的地,所以 TCP 就常用在 文件的傳送,如Line聊天的檔案傳送、Skype 檔案的傳送等。




     在 Widnows 10 Universal APP 平台下(UWP ),是透過一個 StreamSocket 類別來提供 TCP 網路通訊傳輸協定的 Socket 功能.
在 Client 端(客戶端)大致我們遵守以下幾個步驟:
1.建立一個 StreamSocket 實體物件。
2.呼叫 StreamSocket.ConnectAsync 方法,來與 Server 端作連接要求。
3.使用 OutputStream 屬性所返回的輸出流(Stream),就可以進行發送資料;
    而 InputStream 屬性則是返回輸入流,是用在接受資料。
4.切記當不再使用 Socket 時,呼叫 Dispose 方法來釋放其所佔用的相關資源。

在 Server 端 (伺服器),我們則需要使用一個 StreamSocketListener 物件,綁定繫結 本機的位址跟Port,來監聽 客戶端(Client)的連接請求服務,而當監聽到客戶發出的請求服務時,會引發另外一個事件 ConnectionReceived 事件,從這個事件的Arg參數,我們可以獲取一個與客戶端進行通訊的 StreamSocket 物件。

上面簡單描述原理,以及程式撰寫大致步驟原理,我一樣習慣來個實際寫作案例來引導,我一樣為了簡單化,我把 Server 端界面與 Client 端界面放在一起,這樣這個範例程式可以充當伺客戶器角色也可以當客戶端角色,在實作案例中 客戶端可以選擇一個圖片已經輸入一些文字內容來描述圖片,最後可以發送圖片跟文字內容給伺服器端,當然伺服器端會馬上監聽到有傳輸服務請求,立即結束資料,並顯示在伺服器端的界面。
系統畫面如下圖

(Server 端)
image


(Client 端)
image



下面是相關的界面 XAML Code:

<Pivot>
           <PivotItem Header="伺服器(Server 端模擬)">
               <Grid>
                   <Grid.RowDefinitions>
                       <RowDefinition Height="Auto"/>
                       <RowDefinition />
                   </Grid.RowDefinitions>
                   <StackPanel>
                       <TextBlock Text="Server IP Address:" Height="30" Margin="0,0,-0.333,0"/>
                       <TextBlock x:Name="tbSvIP" FontSize="24" IsTextSelectionEnabled="True" Height="30" Margin="0,0,-0.333,0"/>
                   </StackPanel>
                   <ListBox Name="lbItems" Grid.Row="1" Margin="6,15,6,5">
                       <ListBox.ItemTemplate>
                           <DataTemplate>
                               <Grid>
                                   <Grid.ColumnDefinitions>
                                       <ColumnDefinition Width="Auto"/>
                                       <ColumnDefinition/>
                                   </Grid.ColumnDefinitions>
                                   <Image Width="50" Height="50" Stretch="UniformToFill" Source="{Binding Path=Image}"/>
                                   <TextBlock Grid.Column="1" TextWrapping="Wrap" FontSize="18" Text="{Binding Path=Text}" Margin="15,0,0,0"/>
                               </Grid>
                           </DataTemplate>
                       </ListBox.ItemTemplate>
                   </ListBox>
               </Grid>
           </PivotItem>
           <PivotItem Header="客戶端(Client 端模擬)">
               <StackPanel>
                   <TextBox Name="txtServerIp" Header="伺服器IP:"/>
                   <Image Name="img" Width="150" Height="150" HorizontalAlignment="Left"/>
                   <Button Content="挑選圖片..." Click="OnPickImagFile"/>
                   <TextBox Name="txtContent" Header="圖片描述:" Height="120"/>
                   <Button Content="傳送資料" HorizontalAlignment="Stretch" Click="OnSend"/>
               </StackPanel>
           </PivotItem>
       </Pivot>


現在來看主要核心程式碼 
一開始我宣告 一個 LISTEN_PORT=“1688”,作為 Server 端監聽的端口。
然後也宣告一個 StreamSocketListener 類別的 listener 欄位。
相關程式我也詳細註解了,主要是在 Loaded事件時,建立對應的監聽事件 ConnectionReceived 、以及使用 BindServiceNameAsync 方法指定監聽的Port。
image


接下來重點在 ConnectionReceived 事件,專門用於接受到 Client 端發出的請求數據。

private async void listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
       {
           string text = string.Empty;
           IRandomAccessStream imgStream = new InMemoryRandomAccessStream();

           // 處理從 Client 端接受到的訊息
           using (StreamSocket socket = args.Socket)
           {
               using (DataReader reader = new DataReader(socket.InputStream))
               {
                   try
                   {
                       // 讀出第一個數字,表示文件的長度
                       await reader.LoadAsync(sizeof(uint));
                       uint len = reader.ReadUInt32();
                       await reader.LoadAsync(len);
                       IBuffer buffer = reader.ReadBuffer(len);
                       // 寫入 Stream
                       await imgStream.WriteAsync(buffer);
                       await reader.LoadAsync(sizeof(uint));
                       // 再次讀入字串長度
                       len = reader.ReadUInt32();
                       // 讀出字串的內容
                       if (len > 0)
                       {
                           await reader.LoadAsync(len);
                           text = reader.ReadString(len);
                       }
                   }
                   catch (Exception ex)
                   {
                       DisplayErrMessage(ex.Message);
                   }
               }
           }

           // 顯示接受到的客戶端訊息內容
           await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
               {
                   BitmapImage bmp = new BitmapImage();
                   bmp.DecodePixelWidth = 50;
                   imgStream.Seek(0);
                   bmp.SetSource(imgStream);
                   imgStream.Dispose();
                   lbItems.Items.Add(new { Image = bmp, Text = text });
               });
       }


再來 Client 端,主要是選好圖片內容、以及輸入文字描述後,執行【傳送資料】按鈕,而對應的程式碼,如下,我也寫上對應的註解
private async void OnSend(object sender, RoutedEventArgs e)
       {
           if (txtServerIp.Text.Length == 0)
           {
               DisplayErrMessage("請輸入伺服器服的IP位置");
               return;
           }
           IBuffer bufferImg = img.Tag as IBuffer;
           if (bufferImg == null)
           {
               DisplayErrMessage("請選擇圖像");
               return;
           }
           Button b = sender as Button;
           b.IsEnabled = false;

           using (StreamSocket socket = new StreamSocket())
           {
               try
               {
                   // 發出連線請求
                   await socket.ConnectAsync(new HostName(txtServerIp.Text), LISTEN_PORT);
                   // 準備傳送資料(圖片跟文字)
                   using (DataWriter writer = new DataWriter(socket.OutputStream))
                   {
                       // 首先寫入圖片
                       uint len = bufferImg.Length;
                       writer.WriteUInt32(len); //長度
                       writer.WriteBuffer(bufferImg);
                       // 寫入文字內容
                       if (txtContent.Text.Length == 0)
                       {
                           writer.WriteUInt32(0);
                       }
                       else
                       {
                           len = writer.MeasureString(txtContent.Text);
                           writer.WriteUInt32(len); //長度
                           writer.WriteString(txtContent.Text);
                       }
                       // 正式提交
                       await writer.StoreAsync();
                   }
                   txtContent.Text = "";
               }
               catch (Exception ex)
               {
                   DisplayMessage(ex.Message);
               }
           }
           b.IsEnabled = true;
       }
 


整個程式執行結果畫面 
(客戶端)

image












(伺服器端) 



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:
allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2016年10月12日 星期三

Windows APP 截取網頁內容轉存圖片檔(程式設計、程式開發、軟體開發)

今天早上在跟客戶開會時,客戶提到有個需求,就是客戶的員工需要常常瀏覽購物平台網頁商品、資訊,但必須及時截取畫面拍照,所以 Allen 我就開發一個小工具,可以讓使用者瀏覽網頁時,進行截取網頁畫面並轉成圖片檔。

(圖示1)

2016-10-12_02-43-27

而這個程式我用目前最新的平台(Windows Universal Platform)開發,因為是用短短 1小時的時間進行程式撰寫,所以功能比較陽春,但可以當做教學跟小工具使用,所以我就拿出來分享。

       一開始在上方的 網址 輸入,你要瀏覽的網頁,例如 http://tw.yahoo.com , 然後在點選瀏覽,就會載入 Yahoo 的網頁,此時你可以按左邊(中間偏下一點)有個按鈕【截取畫面】,執行後就會截取現在瀏覽的網頁“畫面”,

(圖示 2)

02

(圖示 3)

03

如果想要把網頁快照轉成圖片,我也寫了一個小功能的按鈕【將畫面存成圖片】,就可以存成實際的圖片。

05

    這樣就可以把網頁畫面及時拍照存檔,這個是個小範例,但是這個技術在知名的電子商務平台,例如 PCHome、Yahoo、淘寶等,都有類似的機制,就是你在訂購商品那瞬間,程式會把當時的產品訂購頁面存成及時圖片,以防止未來買賣有發生爭議時,可以作為交易的依據。

同時,我也把安裝程式放在 DropBox,因為我開發的平台為 Windows Universal APP,所以安裝方式請打開 powershell 直接把 Add-AppDevPackage.ps1 檔案拖拉到powershell 畫面,再按 Enter 鍵即可。

螢幕快照 2016-10-12 上午3.04.26

ddd

aaaaa

螢幕快照 2016-10-12 上午3.21.26

程式下載點

https://www.dropbox.com/s/673eet6odd4gyyk/NetQna_1.0.5.0_Debug_Test.rar?dl=0

下一篇,我會講解核心程式碼技巧(待續)

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年9月29日 星期四

恭賀!2016年台北國際發明暨技術交易展- 聲控避障智慧導盲系統(軟體開發、軟件開發、程式開發、程序開發)

        今天網智數位高苑科技大學雙方在【2016年台北國際發明暨技術交易展】簽訂合作簽約儀式,在技術研發創新多個隊伍下,得到最高獎項- 聲控避障智慧導盲系統,該「聲控避障智慧感應系統」研發技術可以運用「顏色導盲」,能讓視障者接受系統語音導盲走在正確的人行道上;搭配使用特製的智慧導盲拐杖或鞋子,能用超音波感測模組感測前方障礙物;行動 App 則可定時播報當前時間、視障者位置與紅綠燈訊號,用以提醒視障者。 
57268


57272


97177
上圖從右邊依序為 網智數位執行長 Allen、高苑科技大學 謝金原(教授)、台灣雲創營運長(Kevin)

         目前這個專利技術系統,也陸續導入盲人協會、醫院盲人引導路線、政府機構積極合作中,我們希望造福更多行動不方便的視障者,真正能用最少的預算建置輔助系統。

Voice-guide-system

Voice-guide-system-1


台北國際技術交易展:多樣技術整合,共同打造智慧生活
活動時間:105 年 9 月 29 日(星期四)~10 月 1 日(星期六)(三天)
活動地點:台北世界貿易中心展覽大樓一樓展場 A、B、D 區(臺北市信義路五段五號)



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年9月22日 星期四

系統分割 - 無法刪除 使用 diskpart 指令 (軟體開發、軟件開發、程式開發)

 今天 Allen 我在整理公司機房的機器設備,也把多年專案開發的系統要做備份,順道買了一個行動硬碟 4 T的容量,但在 MAC Pro 先進行格式化後,再插入回 Windows 作業系統環境後,使用磁碟管理發現該顆硬碟最前面出現200MB的EFI磁碟分割,而磁碟管理圖形界面無法進行刪除該多餘磁碟分割,雖然才 200 M,但就覺得浪費了空間,所以忽然想到使用 DiskPart 指令,以下就是簡單的指令操作步驟教學… 
diskpart-list-volume

我們要如何刪除多餘的EFI磁碟分割呢?

此時選擇[開始] -> [執行], 執行"cmd"出現終端機視窗

此時輸入 diskpart 指令並按[Enter]鍵

DISKPART> list disk

磁碟###   狀態         大小        可用     Dyn  Gpt
--------      ----------   -------     -------   ---    ---
磁碟 0       連線         1000 GB   0 B
磁碟 1       沒有媒體   0 B         0 B
磁碟 2       沒有媒體   0 B         0 B
磁碟 3       連線         37 GB     37 GB   *


DISKPART> select disk 3

磁碟 3 是所選擇的磁碟。

DISKPART> list partition

磁碟分割 ###   類型                大小         位移
----------------   ----------------  -------       -------

磁碟分割 1        系統                200 MB    20 KB

DISKPART> clean

DiskPart 成功地清理了磁碟。

DISKPART> exit

最後再使用 clean 指令清除磁碟時務必確定選擇的磁碟是否正確。




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月31日 星期三

聯軸器、馬達產品報價選型、統計圖表管理軟體 【軟體開發、軟件開發、程式設計】

       感謝鈺德聯合實業股份有限公司尋求網智數位-軟體開發團隊,評估該公司的產品下單流程、選型管理軟體委外開發案,該公司在馬達、離心式泵浦產品是台灣的領導廠商,但因為產品在尺寸、電力、Critical Speed計算的多樣性,所以必須一套管理軟體來輔助公司業務、各區域、其他國家合作廠商進行下單、報價的評估比對產品可行性,所以在幾個月前就評估幾家軟體資訊公司,網智數位也是被詢問的廠商之一,而我司團隊也有效的進行初期系統分析、Prototype製作,確認客戶需求,讓客戶了解我們可以協助的程度、專業性,最後該客戶決定委託我們開發選型管理軟體,我們深信好的分析能力、開發能力,跟客戶不斷的溝通,了解什麼樣的功能需求,對客戶才是真正所需要的,因為我們一直堅持,資訊軟體產業就是要開發出一個符合某產業某特定需求,而量身定做的軟體。

mgc

 

關於鈺德聯合

本公司創立於民國八十七年,專業代理美國、瑞典、義大利等高品質離心式泵浦,有產品均通過ISO9001品質認證,適用於民生給水、工業製程,依泵浦類型可區分為全不鏽鋼離心泵、全不鏽鋼深井泵、污廢水用沉水泵及各種高壓泵、恆壓機組。公司擁有最佳的維修工廠及設備,經驗豐富的專業維修技術人員,並提供完善的售後服務。

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月21日 星期日

物聯網 IOT 台灣微軟影片介紹–(軟體開發、程式開發、軟件開發)

       這1~2年來從雲端的夯議題到現在幾乎每天都會談到的物聯網(IOT),除了我常被客戶詢問相關合作機會跟也常被詢問何謂物聯網,今天看到台灣微軟的教學影片,它詳細介紹了相關技術已經微軟的物聯網與Azure雲端平台的運用介紹。
網智數位在物聯網的軟體開發有相關的技術團隊,可以量身訂做為客戶設計各種感應器的數據分析、以及雲端平台的整合應用,我們目前也正在開發了瓦斯安全裝置的物聯網應用、無人櫃檯的旅館結帳系統等。
               

       以下就是微軟的教學影片,有興趣的真的可以花一些時間觀看。(影片來自微軟 Chanel 9)物聯網世代已勢在必行!有了 Microsoft Azure 物聯網服務,您就可以監控資產來提升效率、提高營運效能來推動創新,利用進階資料分析,透過新的商業模式和收入來源讓您的公司轉型~~
https://www.youtube.com/watch?v=yF2S7nLVz9I&feature=youtu.be


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月18日 星期四

Windows Server 2016 七大 Hyper-V 功能 (網智數位﹣軟體開發﹣程式開發)

      雖然目前雲端技術正在不斷流行、成熟化,可是事實上仍有大量工作負載需求是企業內部必須依靠虛擬伺服器作為服務載體。
images
所以下面我整理了其中的各項windows server 2016 hypber-v 全新功能或者經過突破改進的特性功能:
1.分立設備配置(又稱DDA)。
使用者用戶在PC當中中接入部分PCIe設備,並将其直接交付虚拟机使用。这项性能强化机制允许各虛擬主機直接存取 PCI 設備,即绕过虚拟化堆栈。与该功能相关的两大关键性PCI设备类型包括GPU与NVMe SSD控制器。
2.主機資源保護:
常常有时候,虛擬機器之前就是會為了自身顺畅运行而拒绝彼此共享資源服務。而在這個時候有一個新功能的支持下,各虛擬機器將只能夠使用自身被分配到的資源分配額度。如果某套虚拟机被发现擅自占用大量资源,则其资源配额会进行下调以防止其影响其它虛擬機器的效能。

3.
虛擬網絡適配器(Adapter)的記憶體“熱”變更:
這些功能允許大家隨意添加或者移除適配器(僅適用於Gen 2 虛擬機),而无需进行关闭以及重启。另外,大家也可以随意对尚未启用的动态内存进行调整(同时适用于Gen 1與第2代虛擬機)。

4.嵌套虛擬化:
大家在子虛擬機器内运行Hyper-V,從而可以其作為主機伺服器來進行使用。如此一来,大家将能够在一套Hyper-V服務器之上運行的Hyper-V Server,從而進行開發、測試与教育訓練工作——不過目前還很難想象是否其可用於真的生產環境中(Online)。
生產型虛擬機檢查點:与快照功能非常類似,上代版本中的检查点能夠為虛擬機器的當前狀態保存了快照(SnapShot),從而用於開發/測試復原。不過這些“標準”的檢查點并未使用陰影複製服務(又簡稱VSS),因為它并不適合用來作為實際生產環境下的備份(Backup)的用途。新的線上型檢查點完美整合了VSS,因此完全能夠適應線上作業環境的實際需求。 


5.PowerShell Direct: 允許管理者在遠程方式管理運行在視窗10或者在Windows Server 2016之上的虛擬機器。大家可经由VMBus利用PowerShell命令进行操控,而无需亲手对主机或者虚拟机进行网络配置或者远程管理设置。这项新功能相信会受到PowerShell脚本語法愛用者粉絲的支持。

6.虛擬TPM与屏蔽虛擬機
受信平台模組(簡稱TPM)允许大家利用微軟(Microsoft)的 BitLocker 技術,來進行加密動作,其具體方式與使用物理TPM保護實體磁碟槽一樣。屏蔽虛擬機同樣是利用虛擬TPM由BitLocker(或者其它加密工具)實現加密。

所以在這2種情況下虛擬機器能够利用TPM預防惡意有心人士對設備的不當存取訪問。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen